ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
ilCmiXapiContentUploadImporter Class Reference
+ Collaboration diagram for ilCmiXapiContentUploadImporter:

Public Member Functions

 __construct (ilObjCmiXapi $object)
 ilCmiXapiContentUploadImporter constructor. More...
 
 ensureCreatedObjectDirectory ()
 
 importServerFile (string $serverFile)
 
 importFormUpload (array $fileData)
 
 getWebDataDirRelativeObjectDirectory ()
 

Data Fields

const RELATIVE_CONTENT_DIRECTORY_NAMEBASE = 'lm_data/lm_'
 
const RELATIVE_XSD_DIRECTORY = 'components/ILIAS/CmiXapi/xml/contentschema'
 
const IMP_FILE_EXTENSION_XML = 'xml'
 
const IMP_FILE_EXTENSION_ZIP = 'zip'
 
const CMI5_XML = 'cmi5.xml'
 
const CMI5_XSD = 'cmi5_v1_CourseStructure.xsd'
 
const TINCAN_XML = 'tincan.xml'
 
const TINCAN_XSD = 'tincan.xsd'
 

Protected Member Functions

 sanitizeObjectDirectory ()
 
 handleFile (string $serverFile)
 
 getUpload (?string $uploadFilePath)
 
 handleUpload (FileUploadResult $uploadResult)
 
 handleXmlFile (string $xmlFilePath)
 
 handleXmlFileFromUpload (string $xmlFileName, string $xmlFilePath)
 
 validateXmlFile (DOMDocument $dom, $xsdFilePath)
 
 handleZipContentUpload (string $uploadFilePath)
 
 getAbsoluteObjectDirectory ()
 
 fetchFileExtension (FileUploadResult $uploadResult)
 
 hasStoredContentXml ()
 
 getStoredContentXml ()
 
 getXsdFilePath (string $xsdFileName)
 
 initObjectFromCmi5Xml (DOMDocument $dom)
 
 initObjectFromTincanXml (DOMDocument $dom)
 

Protected Attributes

ilObjCmiXapi $object
 

Static Protected Attributes

static array $CONTENT_XML_FILENAMES
 
static array $CONTENT_XSD_FILENAMES
 

Private Member Functions

 generateActivityId (string $publisherId)
 

Private Attributes

ILIAS DI Container $dic
 

Detailed Description

Definition at line 37 of file class.ilCmiXapiContentUploadImporter.php.

Constructor & Destructor Documentation

◆ __construct()

ilCmiXapiContentUploadImporter::__construct ( ilObjCmiXapi  $object)

ilCmiXapiContentUploadImporter constructor.

Definition at line 74 of file class.ilCmiXapiContentUploadImporter.php.

References $DIC, and $object.

75  {
76  global $DIC;
77  $this->dic = $DIC;
78  $this->object = $object;
79  }
global $DIC
Definition: shib_login.php:25

Member Function Documentation

◆ ensureCreatedObjectDirectory()

ilCmiXapiContentUploadImporter::ensureCreatedObjectDirectory ( )
Exceptions

Definition at line 84 of file class.ilCmiXapiContentUploadImporter.php.

References $DIC, and getWebDataDirRelativeObjectDirectory().

Referenced by importFormUpload(), and importServerFile().

84  : void
85  {
86  global $DIC; /* @var \ILIAS\DI\Container $DIC */
87  if (!$DIC->filesystem()->web()->has($this->getWebDataDirRelativeObjectDirectory())) {
88  $DIC->filesystem()->web()->createDir($this->getWebDataDirRelativeObjectDirectory());
89  }
90  }
global $DIC
Definition: shib_login.php:25
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fetchFileExtension()

ilCmiXapiContentUploadImporter::fetchFileExtension ( FileUploadResult  $uploadResult)
protected

Definition at line 319 of file class.ilCmiXapiContentUploadImporter.php.

Referenced by handleUpload().

319  : string
320  {
321  return pathinfo($uploadResult->getName(), PATHINFO_EXTENSION);
322  }
+ Here is the caller graph for this function:

◆ generateActivityId()

ilCmiXapiContentUploadImporter::generateActivityId ( string  $publisherId)
private

Definition at line 463 of file class.ilCmiXapiContentUploadImporter.php.

References $DIC, $objId, and ilCmiXapiUser\getIliasUuid().

Referenced by initObjectFromCmi5Xml().

463  : string
464  {
465  global $DIC;
466  $objId = $this->object->getId();
467  return "https://ilias.de/cmi5/activityid/" . (new \Ramsey\Uuid\UuidFactory())->uuid3(ilCmiXapiUser::getIliasUuid(), $objId . '-' . $publisherId);
468  }
$objId
Definition: xapitoken.php:55
global $DIC
Definition: shib_login.php:25
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getAbsoluteObjectDirectory()

ilCmiXapiContentUploadImporter::getAbsoluteObjectDirectory ( )
protected

Definition at line 303 of file class.ilCmiXapiContentUploadImporter.php.

References CLIENT_ID, getWebDataDirRelativeObjectDirectory(), and ILIAS_WEB_DIR.

Referenced by getStoredContentXml(), and handleZipContentUpload().

303  : string
304  {
305  $dirs = [
306  ILIAS_ABSOLUTE_PATH,
307  'public/' . ILIAS_WEB_DIR . "/" . CLIENT_ID,
309  ];
310 
311  return implode(DIRECTORY_SEPARATOR, $dirs);
312  }
const CLIENT_ID
Definition: constants.php:41
const ILIAS_WEB_DIR
Definition: constants.php:45
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getStoredContentXml()

ilCmiXapiContentUploadImporter::getStoredContentXml ( )
protected

Definition at line 329 of file class.ilCmiXapiContentUploadImporter.php.

References getAbsoluteObjectDirectory(), and getWebDataDirRelativeObjectDirectory().

Referenced by handleFile(), handleUpload(), and hasStoredContentXml().

329  : string
330  {
331  foreach (self::$CONTENT_XML_FILENAMES as $xmlFileName) {
332  $xmlFilePath = $this->getWebDataDirRelativeObjectDirectory() . DIRECTORY_SEPARATOR . $xmlFileName;
333 
334  if ($this->dic->filesystem()->web()->has($xmlFilePath)) {
335  return $this->getAbsoluteObjectDirectory() . DIRECTORY_SEPARATOR . $xmlFileName;
336  }
337  }
338 
339  return '';
340  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getUpload()

ilCmiXapiContentUploadImporter::getUpload ( ?string  $uploadFilePath)
protected
Exceptions

Definition at line 163 of file class.ilCmiXapiContentUploadImporter.php.

References $DIC, and $results.

Referenced by importFormUpload().

164  {
165  global $DIC; /* @var \ILIAS\DI\Container $DIC */
166 
167  if ($DIC->upload()->hasUploads()) {
168  if (!$DIC->upload()->hasBeenProcessed()) {
169  $DIC->upload()->process();
170  }
171 
172  /* @var FileUploadResult $result */
173 
174  $results = $DIC->upload()->getResults();
175 
176  if (isset($results[$uploadFilePath])) {
177  $result = $results[$uploadFilePath];
178 
179  if ($result->isOK()) {
180  return $result;
181  }
182 
184  'upload processing failed with message ' .
185  '"' . $result->getStatus()->getMessage() . '"'
186  );
187  }
188 
189  throw new ilCmiXapiInvalidUploadContentException('upload lost during processing!');
190  }
191 
192  throw new ilCmiXapiInvalidUploadContentException('no upload provided!');
193  }
global $DIC
Definition: shib_login.php:25
$results
+ Here is the caller graph for this function:

◆ getWebDataDirRelativeObjectDirectory()

ilCmiXapiContentUploadImporter::getWebDataDirRelativeObjectDirectory ( )

Definition at line 314 of file class.ilCmiXapiContentUploadImporter.php.

Referenced by ensureCreatedObjectDirectory(), getAbsoluteObjectDirectory(), getStoredContentXml(), and sanitizeObjectDirectory().

314  : string
315  {
316  return self::RELATIVE_CONTENT_DIRECTORY_NAMEBASE . $this->object->getId();
317  }
+ Here is the caller graph for this function:

◆ getXsdFilePath()

ilCmiXapiContentUploadImporter::getXsdFilePath ( string  $xsdFileName)
protected

Definition at line 342 of file class.ilCmiXapiContentUploadImporter.php.

Referenced by handleXmlFile(), and handleXmlFileFromUpload().

342  : string
343  {
344  return ILIAS_ABSOLUTE_PATH . DIRECTORY_SEPARATOR . self::RELATIVE_XSD_DIRECTORY . DIRECTORY_SEPARATOR . $xsdFileName;
345  }
+ Here is the caller graph for this function:

◆ handleFile()

ilCmiXapiContentUploadImporter::handleFile ( string  $serverFile)
protected
Exceptions
ilCmiXapiInvalidUploadContentException

Definition at line 118 of file class.ilCmiXapiContentUploadImporter.php.

References getStoredContentXml(), handleXmlFile(), handleZipContentUpload(), and hasStoredContentXml().

Referenced by importServerFile().

118  : void
119  {
120  $fileInfo = pathinfo($serverFile);
121 
122  switch ($fileInfo['extension']) {
123  case self::IMP_FILE_EXTENSION_XML:
124 
125  $this->handleXmlFile($serverFile);
126  break;
127 
128  case self::IMP_FILE_EXTENSION_ZIP:
129 
130  $this->handleZipContentUpload($serverFile);
131 
132  if ($this->hasStoredContentXml()) {
133  $this->handleXmlFile($this->getStoredContentXml());
134  }
135 
136  break;
137  }
138  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ handleUpload()

ilCmiXapiContentUploadImporter::handleUpload ( FileUploadResult  $uploadResult)
protected
Exceptions
ilCmiXapiInvalidUploadContentException

Definition at line 198 of file class.ilCmiXapiContentUploadImporter.php.

References fetchFileExtension(), getStoredContentXml(), handleXmlFile(), handleXmlFileFromUpload(), handleZipContentUpload(), and hasStoredContentXml().

Referenced by importFormUpload().

198  : void
199  {
200  switch ($this->fetchFileExtension($uploadResult)) {
201  case self::IMP_FILE_EXTENSION_XML:
202 
203  $this->handleXmlFileFromUpload($uploadResult->getName(), $uploadResult->getPath());
204  break;
205 
206  case self::IMP_FILE_EXTENSION_ZIP:
207 
208  $this->handleZipContentUpload($uploadResult->getPath());
209 
210  if ($this->hasStoredContentXml()) {
211  $this->handleXmlFile($this->getStoredContentXml());
212  }
213 
214  break;
215  }
216  }
fetchFileExtension(FileUploadResult $uploadResult)
handleXmlFileFromUpload(string $xmlFileName, string $xmlFilePath)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ handleXmlFile()

ilCmiXapiContentUploadImporter::handleXmlFile ( string  $xmlFilePath)
protected
Exceptions
ilCmiXapiInvalidUploadContentException

Definition at line 221 of file class.ilCmiXapiContentUploadImporter.php.

References getXsdFilePath(), initObjectFromCmi5Xml(), initObjectFromTincanXml(), and validateXmlFile().

Referenced by handleFile(), and handleUpload().

221  : void
222  {
223  $dom = new DOMDocument();
224  $dom->load($xmlFilePath);
225 
226  switch (basename($xmlFilePath)) {
227  case self::CMI5_XML:
228 
229  $xsdFilePath = $this->getXsdFilePath(self::CMI5_XSD);
230  $this->validateXmlFile($dom, $xsdFilePath);
231 
232  $this->initObjectFromCmi5Xml($dom);
233 
234  break;
235 
236  case self::TINCAN_XML:
237 
238  $xsdFilePath = $this->getXsdFilePath(self::TINCAN_XSD);
239  $this->validateXmlFile($dom, $xsdFilePath);
240 
241  $this->initObjectFromTincanXml($dom);
242 
243  break;
244  }
245  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ handleXmlFileFromUpload()

ilCmiXapiContentUploadImporter::handleXmlFileFromUpload ( string  $xmlFileName,
string  $xmlFilePath 
)
protected
Exceptions
ilCmiXapiInvalidUploadContentException

Definition at line 250 of file class.ilCmiXapiContentUploadImporter.php.

References getXsdFilePath(), initObjectFromCmi5Xml(), initObjectFromTincanXml(), and validateXmlFile().

Referenced by handleUpload().

250  : void
251  {
252  $dom = new DOMDocument();
253  $dom->load($xmlFilePath);
254  switch (basename($xmlFileName)) {
255  case self::CMI5_XML:
256 
257  $xsdFilePath = $this->getXsdFilePath(self::CMI5_XSD);
258  $this->validateXmlFile($dom, $xsdFilePath);
259 
260  $this->initObjectFromCmi5Xml($dom);
261 
262  break;
263 
264  case self::TINCAN_XML:
265 
266  $xsdFilePath = $this->getXsdFilePath(self::TINCAN_XSD);
267  $this->validateXmlFile($dom, $xsdFilePath);
268 
269  $this->initObjectFromTincanXml($dom);
270 
271  break;
272  }
273  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ handleZipContentUpload()

ilCmiXapiContentUploadImporter::handleZipContentUpload ( string  $uploadFilePath)
protected

Definition at line 285 of file class.ilCmiXapiContentUploadImporter.php.

References getAbsoluteObjectDirectory().

Referenced by handleFile(), and handleUpload().

285  : void
286  {
287  $targetPath = $this->getAbsoluteObjectDirectory();
288  $archives = new Archives();
289  $unzip = $archives->unzip(
290  Streams::ofResource(fopen($uploadFilePath, 'rb')),
291  $archives->unzipOptions()
292  ->withZipOutputPath($targetPath)
293  ->withOverwrite(true)
294  // ->withDirectoryHandling(ZipDirectoryHandling::FLAT_STRUCTURE)
295  );
296  $unzip->extract();
297  // $zar = new \ZipArchive();
298  // $zar->open($uploadFilePath);
299  // $zar->extractTo($targetPath);
300  // $zar->close();
301  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ hasStoredContentXml()

ilCmiXapiContentUploadImporter::hasStoredContentXml ( )
protected

Definition at line 324 of file class.ilCmiXapiContentUploadImporter.php.

References getStoredContentXml().

Referenced by handleFile(), and handleUpload().

324  : bool
325  {
326  return $this->getStoredContentXml() !== '';
327  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ importFormUpload()

ilCmiXapiContentUploadImporter::importFormUpload ( array  $fileData)
Exceptions

Definition at line 145 of file class.ilCmiXapiContentUploadImporter.php.

References $DIC, ensureCreatedObjectDirectory(), getUpload(), handleUpload(), and sanitizeObjectDirectory().

145  : void
146  {
147  global $DIC;
149 
150  $uploadResult = $this->getUpload(
151  $fileData['tmp_name']
152  );
153 
154  $this->handleUpload($uploadResult);
155 
156  $this->sanitizeObjectDirectory();
157  }
global $DIC
Definition: shib_login.php:25
+ Here is the call graph for this function:

◆ importServerFile()

ilCmiXapiContentUploadImporter::importServerFile ( string  $serverFile)
Exceptions

Definition at line 106 of file class.ilCmiXapiContentUploadImporter.php.

References ensureCreatedObjectDirectory(), handleFile(), and sanitizeObjectDirectory().

+ Here is the call graph for this function:

◆ initObjectFromCmi5Xml()

ilCmiXapiContentUploadImporter::initObjectFromCmi5Xml ( DOMDocument  $dom)
protected

Definition at line 347 of file class.ilCmiXapiContentUploadImporter.php.

References generateActivityId(), ilObjCmiXapi\LMS_MASTERY_SCORE, ilLPObjSettings\LP_MODE_CMIX_COMPLETED, ilLPObjSettings\LP_MODE_CMIX_COMPLETED_OR_PASSED, ilLPObjSettings\LP_MODE_CMIX_PASSED, ilLPObjSettings\LP_MODE_DEACTIVATED, ilCmiXapiLP\MOVEON_COMPLETED, ilCmiXapiLP\MOVEON_COMPLETED_AND_PASSED, ilCmiXapiLP\MOVEON_COMPLETED_OR_PASSED, ilCmiXapiLP\MOVEON_PASSED, and ILIAS\Repository\object().

Referenced by handleXmlFile(), and handleXmlFileFromUpload().

347  : void
348  {
349  $xPath = new DOMXPath($dom);
350 
351  $courseNode = $xPath->query("//*[local-name()='course']")->item(0);
352  // TODO: multilanguage support
353  $title = $xPath->query("//*[local-name()='title']/*[local-name()='langstring']", $courseNode)->item(0)->nodeValue;
354  $this->object->setTitle(trim($title));
355 
356  $description = $xPath->query("//*[local-name()='description']/*[local-name()='langstring']", $courseNode)->item(0)->nodeValue;
357  $this->object->setDescription(trim($description));
358 
359  $publisherId = trim($courseNode->getAttribute('id'));
360  $this->object->setPublisherId($publisherId);
361 
362  $activityId = $this->generateActivityId($publisherId);
363  $this->object->setActivityId($activityId);
364 
365  $moveOn = '';
366 
367  foreach ($xPath->query("//*[local-name()='au']") as $assignedUnitNode) {
368  $relativeLaunchUrl = $xPath->query("//*[local-name()='url']", $assignedUnitNode)->item(0)->nodeValue;
369  if (!empty($xPath->query("//*[local-name()='launchParameters']", $assignedUnitNode)->item(0)->nodeValue)) {
370  $launchParameters = $xPath->query(
371  "//*[local-name()='launchParameters']",
372  $assignedUnitNode
373  )->item(0)->nodeValue;
374  }
375  if (!empty($assignedUnitNode->getAttribute('moveOn'))) {
376  $moveOn = trim($assignedUnitNode->getAttribute('moveOn'));
377  }
378  if (!empty($xPath->query("//*[local-name()='entitlementKey']", $assignedUnitNode)->item(0)->nodeValue)) {
379  $entitlementKey = $xPath->query(
380  "//*[local-name()='entitlementKey']",
381  $assignedUnitNode
382  )->item(0)->nodeValue;
383  }
384  if (!empty($assignedUnitNode->getAttribute('masteryScore'))) {
385  $masteryScore = trim($assignedUnitNode->getAttribute('masteryScore'));
386  }
387 
388  if (!empty($relativeLaunchUrl)) {
389  $this->object->setLaunchUrl(trim($relativeLaunchUrl));
390  }
391  if (!empty($launchParameters)) {
392  $this->object->setLaunchParameters(trim($launchParameters));
393  }
394  if (!empty($moveOn)) {
396  $moveOn = ilCmiXapiLP::MOVEON_PASSED;
397  }
398  $this->object->setMoveOn($moveOn);
399  }
400  if (!empty($entitlementKey)) {
401  $this->object->setEntitlementKey($entitlementKey);
402  }
403  if (!empty($masteryScore)) {
404  $this->object->setMasteryScore((float) $masteryScore);
405  } else {
406  $this->object->setMasteryScore(ilObjCmiXapi::LMS_MASTERY_SCORE);
407  }
408 
409  break; // TODO: manage multi au imports
410  }
411  $xml_str = $dom->saveXML();
412  $this->object->setXmlManifest($xml_str);
413  $this->object->update();
414  $this->object->save();
415 
416  $lpSettings = new ilLPObjSettings($this->object->getId());
418 
419  switch ($moveOn) {
422  break;
425  break;
428  break;
429  case ilCmiXapiLP::MOVEON_COMPLETED_AND_PASSED: // ich würde es noch implementieren
431  break;
432  }
433  $lpSettings->setMode($mode);
434  $lpSettings->update();
435  }
const MOVEON_COMPLETED_AND_PASSED
const MOVEON_COMPLETED_OR_PASSED
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initObjectFromTincanXml()

ilCmiXapiContentUploadImporter::initObjectFromTincanXml ( DOMDocument  $dom)
protected

Definition at line 437 of file class.ilCmiXapiContentUploadImporter.php.

Referenced by handleXmlFile(), and handleXmlFileFromUpload().

437  : void
438  {
439  $xPath = new DOMXPath($dom);
440 
441  foreach ($xPath->query("//*[local-name()='activity']") as $activityNode) {
442  $title = $xPath->query("//*[local-name()='name']", $activityNode)->item(0)->nodeValue;
443  $this->object->setTitle(trim($title));
444 
445  $description = $xPath->query("//*[local-name()='description']", $activityNode)->item(0)->nodeValue;
446  $this->object->setDescription(trim($description));
447 
448  $activityId = $activityNode->getAttribute('id');
449  $this->object->setActivityId(trim($activityId));
450 
451  $relativeLaunchUrl = $xPath->query("//*[local-name()='launch']", $activityNode)->item(0)->nodeValue;
452  $this->object->setLaunchUrl(trim($relativeLaunchUrl));
453 
454  break; // TODO: manage multi activities imports
455  }
456 
457  $xml_str = $dom->saveXML();
458  $this->object->setXmlManifest($xml_str);
459  $this->object->update();
460  $this->object->save();
461  }
+ Here is the caller graph for this function:

◆ sanitizeObjectDirectory()

ilCmiXapiContentUploadImporter::sanitizeObjectDirectory ( )
protected

Definition at line 92 of file class.ilCmiXapiContentUploadImporter.php.

References getWebDataDirRelativeObjectDirectory(), ilFileUtils\getWebspaceDir(), and ilFileUtils\renameExecutables().

Referenced by importFormUpload(), and importServerFile().

92  : void
93  {
95  implode(DIRECTORY_SEPARATOR, [
98  ])
99  );
100  }
static getWebspaceDir(string $mode="filesystem")
get webspace directory
static renameExecutables(string $a_dir)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ validateXmlFile()

ilCmiXapiContentUploadImporter::validateXmlFile ( DOMDocument  $dom,
  $xsdFilePath 
)
protected
Exceptions
ilCmiXapiInvalidUploadContentException

Definition at line 278 of file class.ilCmiXapiContentUploadImporter.php.

Referenced by handleXmlFile(), and handleXmlFileFromUpload().

278  : void
279  {
280  if (!$dom->schemaValidate($xsdFilePath)) {
281  throw new ilCmiXapiInvalidUploadContentException('invalid content xml given!');
282  }
283  }
+ Here is the caller graph for this function:

Field Documentation

◆ $CONTENT_XML_FILENAMES

array ilCmiXapiContentUploadImporter::$CONTENT_XML_FILENAMES
staticprotected
Initial value:
= [
self::CMI5_XML, self::TINCAN_XML
]

Definition at line 55 of file class.ilCmiXapiContentUploadImporter.php.

◆ $CONTENT_XSD_FILENAMES

array ilCmiXapiContentUploadImporter::$CONTENT_XSD_FILENAMES
staticprotected
Initial value:
= [
self::CMI5_XML => self::CMI5_XSD

Definition at line 62 of file class.ilCmiXapiContentUploadImporter.php.

◆ $dic

ILIAS DI Container ilCmiXapiContentUploadImporter::$dic
private

Definition at line 69 of file class.ilCmiXapiContentUploadImporter.php.

◆ $object

ilObjCmiXapi ilCmiXapiContentUploadImporter::$object
protected

Definition at line 67 of file class.ilCmiXapiContentUploadImporter.php.

Referenced by __construct().

◆ CMI5_XML

const ilCmiXapiContentUploadImporter::CMI5_XML = 'cmi5.xml'

Definition at line 46 of file class.ilCmiXapiContentUploadImporter.php.

◆ CMI5_XSD

const ilCmiXapiContentUploadImporter::CMI5_XSD = 'cmi5_v1_CourseStructure.xsd'

Definition at line 47 of file class.ilCmiXapiContentUploadImporter.php.

◆ IMP_FILE_EXTENSION_XML

const ilCmiXapiContentUploadImporter::IMP_FILE_EXTENSION_XML = 'xml'

Definition at line 43 of file class.ilCmiXapiContentUploadImporter.php.

◆ IMP_FILE_EXTENSION_ZIP

const ilCmiXapiContentUploadImporter::IMP_FILE_EXTENSION_ZIP = 'zip'

Definition at line 44 of file class.ilCmiXapiContentUploadImporter.php.

◆ RELATIVE_CONTENT_DIRECTORY_NAMEBASE

const ilCmiXapiContentUploadImporter::RELATIVE_CONTENT_DIRECTORY_NAMEBASE = 'lm_data/lm_'

◆ RELATIVE_XSD_DIRECTORY

const ilCmiXapiContentUploadImporter::RELATIVE_XSD_DIRECTORY = 'components/ILIAS/CmiXapi/xml/contentschema'

Definition at line 41 of file class.ilCmiXapiContentUploadImporter.php.

◆ TINCAN_XML

const ilCmiXapiContentUploadImporter::TINCAN_XML = 'tincan.xml'

Definition at line 49 of file class.ilCmiXapiContentUploadImporter.php.

◆ TINCAN_XSD

const ilCmiXapiContentUploadImporter::TINCAN_XSD = 'tincan.xsd'

Definition at line 50 of file class.ilCmiXapiContentUploadImporter.php.


The documentation for this class was generated from the following file: