ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilDataSet Class Reference

A dataset contains in data in a common structure that can be shared and transformed for different purposes easily, examples. More...

+ Inheritance diagram for ilDataSet:
+ Collaboration diagram for ilDataSet:

Public Member Functions

 __construct ()
 
 init (string $a_entity, string $a_schema_version)
 Init. More...
 
 getSupportedVersions ()
 
 readData (string $a_entity, string $a_version, array $a_ids)
 Read data from DB. More...
 
 initByExporter (ilXmlExporter $xml_exporter)
 
 setImportDirectory (string $a_val)
 
 getImportDirectory ()
 
 setDSPrefix (string $a_val)
 
 getDSPrefix ()
 
 getDSPrefixString ()
 
 getDirectDataFromQuery (string $a_query, bool $a_convert_to_leading_upper=true, bool $a_set=true)
 Get data from query.This is a standard procedure, all db field names are directly mapped to abstract fields. More...
 
 convertToLeadingUpper (string $a_str)
 Make xyz_abc a XyzAbc string. More...
 
 getXmlRepresentation (string $a_entity, string $a_schema_version, ?array $a_ids, string $a_field="", bool $a_omit_header=false, bool $a_omit_types=false)
 Get xml representation <dataset install_id="123" install_url="..."> <types entity="table_name" version="4.0.1"> <ftype name="field_1" type="text" > <ftype name="field_2" type="date" > <ftype name="field_3" type="integer" > </types> <types ...> ... </types> <set entity="table_name"> <rec> <field_1>content</field_1> <field_2>my_date</field_2> <field_3>my_number</field_3> </rec> ... </set> </dataset> More...
 
 addRecordsXml (ilXmlWriter $a_writer, array $a_prefixes, string $a_entity, string $a_schema_version, array $a_ids, ?string $a_field="")
 
 afterXmlRecordWriting (string $a_entity, string $a_version, array $a_set)
 
 getNamespaces (array &$namespaces, string $a_entity, string $a_schema_version)
 
 getXmlRecord (string $a_entity, string $a_version, array $a_set)
 Get xml record for version. More...
 
 getXmlTypes (string $a_entity, string $a_version)
 Get xml types. More...
 
 getXMLEntityName (string $a_entity, string $a_version)
 Get entity name for xml (may be overwritten) More...
 
 getXMLEntityTag (string $a_entity, string $a_schema_version)
 Get entity tag. More...
 
 setImport (ilSurveyImporter $a_val)
 
 getImport ()
 
 setCurrentInstallationId (string $a_val)
 
 getCurrentInstallationId ()
 
 importRecord (string $a_entity, array $a_types, array $a_rec, ilImportMapping $a_mapping, string $a_schema_version)
 Needs to be overwritten for import use case. More...
 
 getCollection (array $record, string $entity, string $schema_version, string $field, string $value)
 
 getContainerExportConfig (array $record, string $entity, string $schema_version, string $field, string $value)
 

Data Fields

const DATASET_NS = 'http://www.ilias.de/Services/DataSet/ds/4_3'
 
const DATASET_NS_PREFIX = 'ds'
 
const EXPORT_NO_INST_ID = 1
 
const EXPORT_ID_ILIAS_LOCAL = 2
 
const EXPORT_ID_ILIAS_LOCAL_INVALID = 3
 
const EXPORT_ID_ILIAS_REMOTE = 4
 
const EXPORT_ID_ILIAS_REMOTE_INVALID = 5
 
const EXPORT_ID = 6
 
const EXPORT_ID_INVALID = 7
 
int $dircnt = 0
 

Protected Member Functions

 getTypes (string $a_entity, string $a_version)
 Get (abstract) types for (abstract) field names. More...
 
 getXmlNamespace (string $a_entity, string $a_schema_version)
 
 getExportDirInContainer (string $exp_dir)
 
 getIRSSContainerExportConfig (StorableResource $source_container, string $source_path, string $target_path="")
 
 getDependencies (string $a_entity, string $a_version, ?array $a_rec=null, ?array $a_ids=null)
 
 createObjectExportId (string $a_type, string $a_id)
 Build ilias export id. More...
 
 parseObjectExportId (string $a_id, ?string $a_fallback_id=null)
 Parse export id. More...
 
 stripTags (array $rec, array $omit_keys=[])
 

Protected Attributes

ILIAS ResourceStorage Services $irss
 
string $current_installation_id = ""
 
array $data = []
 
ilDBInterface $db
 
ilLogger $ds_log
 
string $import_directory = ""
 
string $entity = ""
 
string $schema_version = ""
 
string $component_export_dir = ""
 
string $ds_prefix = "ds"
 
string $version = ""
 
ilSurveyImporter $import
 
ilExport $export
 

Private Member Functions

 addTypesXml (ilXmlWriter $a_writer, string $a_entity, string $a_schema_version)
 

Detailed Description

A dataset contains in data in a common structure that can be shared and transformed for different purposes easily, examples.

  • transform associative arrays into (set-)xml and back (e.g. for import/export)
  • transform assiciative arrays into json and back (e.g. for ajax requests)

The general structure is:

  • entity name (many times this corresponds to a table name)
  • structure (this is a set of field names and types pairs) currently supported types: text, integer, timestamp planned: date, time, clob types correspond to db types, see http://www.ilias.de/docu/goto.php?target=pg_25354_42&client_id=docu
  • records (similar to records of a database query; associative arrays)
Author
Alexander Killing killi.nosp@m.ng@l.nosp@m.eifos.nosp@m..de

Definition at line 42 of file class.ilDataSet.php.

Constructor & Destructor Documentation

◆ __construct()

ilDataSet::__construct ( )

Reimplemented in ilBibliographicDataSet, ilBlogDataSet, ilContentPageDataSet, ilDataCollectionDataSet, ilExerciseDataSet, ilGlossaryDataSet, ilHelpDataSet, ilHTMLLearningModuleDataSet, ilIndividualAssessmentDataSetWrapper, ilLearningModuleDataSet, ilMediaObjectDataSet, ilNotesDataSet, ilPollDataSet, ilPortfolioDataSet, ilScormAiccDataSet, ilSessionDataSet, ilSkillDataSet, ilStyleDataSet, ilUserDataSet, and ilWikiDataSet.

Definition at line 70 of file class.ilDataSet.php.

71 {
72 global $DIC;
73
74 $this->db = $DIC->database();
75 $this->ds_log = ilLoggerFactory::getLogger('ds');
76 $this->irss = $DIC->resourceStorage();
77 }
static getLogger(string $a_component_id)
Get component logger.
global $DIC
Definition: shib_login.php:26

References $DIC, and ilLoggerFactory\getLogger().

+ Here is the call graph for this function:

Member Function Documentation

◆ addRecordsXml()

ilDataSet::addRecordsXml ( ilXmlWriter  $a_writer,
array  $a_prefixes,
string  $a_entity,
string  $a_schema_version,
array  $a_ids,
?string  $a_field = "" 
)

Definition at line 287 of file class.ilDataSet.php.

294 : void {
295 $types = $this->getXmlTypes($a_entity, $a_schema_version);
296 $this->ds_log->debug("...read data");
297 $this->readData($a_entity, $a_schema_version, $a_ids);
298 $this->ds_log->debug("...data: " . print_r($this->data, true));
299 foreach ($this->data as $d) {
300 $a_writer->xmlStartTag(
301 $this->getDSPrefixString() . "Rec",
302 array("Entity" => $this->getXMLEntityName($a_entity, $a_schema_version))
303 );
304 $a_writer->xmlStartTag($this->getXMLEntityTag($a_entity, ''));
305 $rec = $this->getXmlRecord($a_entity, $a_schema_version, $d);
306 foreach ($rec as $f => $c) {
307 if (isset($this->export) and ($types[$f] ?? "") === "directory") {
308 $sdir = realpath($c);
309 $path_in_container = $this->export->getPathToComponentExpDirInContainer() . "/dsDir_" . $this->dircnt;
310 $this->export->getExportWriter()->writeDirectory(
311 $sdir,
312 $path_in_container
313 );
314 $c = $this->getExportDirInContainer($path_in_container); // note: this corrects the path, see above
315 $this->dircnt++;
316 }
317 if (isset($this->export) and ($types[$f] ?? "") === "rscollection") {
318 $path_in_container = $this->export->getPathToComponentExpDirInContainer() . "/dsDir_" . $this->dircnt;
319 $collection = $this->getCollection($rec, $a_entity, $a_schema_version, $f, $c);
320 if (!is_null($collection)) {
321 $this->export->getExportWriter()->writeFilesByResourceCollection(
322 $collection,
323 $path_in_container
324 );
325 }
326
327 $c = $this->getExportDirInContainer($path_in_container); // note: this corrects the path, see above
328 $this->dircnt++;
329 }
330 if (isset($this->export) and ($types[$f] ?? "") === "rscontainer") {
331 $path_in_container = "/dsDir_" . $this->dircnt;
332 if ($this->export->isContainerExport()) { // note: this checks if the export is in a container context and adds the set number to the path accordingly
333 $path_in_container = $this->export->getPathToComponentExpDirInContainerWithLeadingSetNumber() . $path_in_container;
334 } else {
335 $path_in_container = $this->export->getPathToComponentExpDirInContainer() . $path_in_container;
336 }
337 if ($config = $this->getContainerExportConfig($rec, $a_entity, $a_schema_version, $f, $c)) {
338 $this->export->getExportWriter()->writeFilesByResourceContainer(
340 $config->getSourceContainer(),
341 $config->getSourcePath(),
342 $path_in_container
343 )
344 );
345 }
346 $c = $this->getExportDirInContainer($path_in_container); // note: this corrects the path, see above
347 $this->dircnt++;
348 }
349 // this changes schema/dtd
350 //$a_writer->xmlElement($a_prefixes[$a_entity].":".$f,
351 // array(), $c);
352 $a_writer->xmlElement($f, array(), $c);
353 }
354
355 $a_writer->xmlEndTag($this->getXMLEntityTag($a_entity, ''));
356
357 $a_writer->xmlEndTag($this->getDSPrefixString() . "Rec");
358
359 $this->afterXmlRecordWriting($a_entity, $a_schema_version, $d);
360
361 // foreach record records of dependent entities
362 $this->ds_log->debug("...get dependencies");
363 $deps = $this->getDependencies($a_entity, $a_schema_version, $rec, $a_ids);
364 $this->ds_log->debug("...dependencies: " . print_r($deps, true));
365 foreach ($deps as $dp => $par) {
366 $ids = !is_array($par["ids"])
367 ? [$par["ids"]]
368 : $par["ids"];
369 $this->addRecordsXml($a_writer, $a_prefixes, $dp, $a_schema_version, $ids, $par["field"] ?? null);
370 }
371 }
372 }
getXMLEntityName(string $a_entity, string $a_version)
Get entity name for xml (may be overwritten)
getIRSSContainerExportConfig(StorableResource $source_container, string $source_path, string $target_path="")
getCollection(array $record, string $entity, string $schema_version, string $field, string $value)
addRecordsXml(ilXmlWriter $a_writer, array $a_prefixes, string $a_entity, string $a_schema_version, array $a_ids, ?string $a_field="")
getXmlTypes(string $a_entity, string $a_version)
Get xml types.
getContainerExportConfig(array $record, string $entity, string $schema_version, string $field, string $value)
readData(string $a_entity, string $a_version, array $a_ids)
Read data from DB.
getDependencies(string $a_entity, string $a_version, ?array $a_rec=null, ?array $a_ids=null)
getXMLEntityTag(string $a_entity, string $a_schema_version)
Get entity tag.
afterXmlRecordWriting(string $a_entity, string $a_version, array $a_set)
getXmlRecord(string $a_entity, string $a_version, array $a_set)
Get xml record for version.
getExportDirInContainer(string $exp_dir)
xmlElement(string $tag, $attrs=null, $data=null, $encode=true, $escape=true)
Writes a basic element (no children, just textual content)
xmlEndTag(string $tag)
Writes an endtag.
xmlStartTag(string $tag, ?array $attrs=null, bool $empty=false, bool $encode=true, bool $escape=true)
Writes a starttag.
$c
Definition: deliver.php:25

◆ addTypesXml()

ilDataSet::addTypesXml ( ilXmlWriter  $a_writer,
string  $a_entity,
string  $a_schema_version 
)
private

Definition at line 401 of file class.ilDataSet.php.

401 : void
402 {
403 $types = $this->getXmlTypes($a_entity, $a_schema_version);
404
405 // add types of current entity
406 if (count($types) > 0) {
407 $a_writer->xmlStartTag(
408 $this->getDSPrefixString() . "Types",
409 array("Entity" => $this->getXMLEntityName($a_entity, $a_schema_version),
410 "SchemaVersion" => $a_schema_version)
411 );
412 foreach ($this->getXmlTypes($a_entity, $a_schema_version) as $f => $t) {
413 $a_writer->xmlElement(
414 $this->getDSPrefixString() . 'FieldType',
415 array("Name" => $f, "Type" => $t)
416 );
417 }
418 $a_writer->xmlEndTag($this->getDSPrefixString() . "Types");
419 }
420
421 // add types of dependent entities
422 $deps = $this->getDependencies($a_entity, $a_schema_version, null, null);
423 foreach ($deps as $dp => $w) {
424 $this->addTypesXml($a_writer, $dp, $a_schema_version);
425 }
426 }
addTypesXml(ilXmlWriter $a_writer, string $a_entity, string $a_schema_version)

References Vendor\Package\$f, ilXmlWriter\xmlElement(), ilXmlWriter\xmlEndTag(), and ilXmlWriter\xmlStartTag().

+ Here is the call graph for this function:

◆ afterXmlRecordWriting()

ilDataSet::afterXmlRecordWriting ( string  $a_entity,
string  $a_version,
array  $a_set 
)

Reimplemented in ilScorm2004DataSet, and ilUserDataSet.

Definition at line 396 of file class.ilDataSet.php.

396 : void
397 {
398 }

◆ convertToLeadingUpper()

ilDataSet::convertToLeadingUpper ( string  $a_str)

Make xyz_abc a XyzAbc string.

Definition at line 189 of file class.ilDataSet.php.

189 : string
190 {
191 $a_str = strtoupper(substr($a_str, 0, 1)) . substr($a_str, 1);
192 while (($pos = strpos($a_str, "_")) !== false) {
193 $a_str = substr($a_str, 0, $pos) .
194 strtoupper(substr($a_str, $pos + 1, 1)) .
195 substr($a_str, $pos + 2);
196 }
197 return $a_str;
198 }

Referenced by ilUserDataSet\importRecord().

+ Here is the caller graph for this function:

◆ createObjectExportId()

ilDataSet::createObjectExportId ( string  $a_type,
string  $a_id 
)
protected

Build ilias export id.

Definition at line 500 of file class.ilDataSet.php.

500 : string
501 {
502 return "il_" . IL_INST_ID . "_" . $a_type . "_" . $a_id;
503 }
const IL_INST_ID
Definition: constants.php:40

References IL_INST_ID.

◆ getCollection()

ilDataSet::getCollection ( array  $record,
string  $entity,
string  $schema_version,
string  $field,
string  $value 
)

Reimplemented in ilExerciseDataSet.

Definition at line 572 of file class.ilDataSet.php.

579 return null;
580 }

◆ getContainerExportConfig()

ilDataSet::getContainerExportConfig ( array  $record,
string  $entity,
string  $schema_version,
string  $field,
string  $value 
)

◆ getCurrentInstallationId()

ilDataSet::getCurrentInstallationId ( )

Definition at line 492 of file class.ilDataSet.php.

492 : string
493 {
495 }
string $current_installation_id

◆ getDependencies()

◆ getDirectDataFromQuery()

ilDataSet::getDirectDataFromQuery ( string  $a_query,
bool  $a_convert_to_leading_upper = true,
bool  $a_set = true 
)

Get data from query.This is a standard procedure, all db field names are directly mapped to abstract fields.

Definition at line 158 of file class.ilDataSet.php.

162 : array {
164
165 $set = $ilDB->query($a_query);
166 $this->data = array();
167 $ret = [];
168 while ($rec = $ilDB->fetchAssoc($set)) {
169 if ($a_convert_to_leading_upper) {
170 $tmp = array();
171 foreach ($rec as $k => $v) {
172 $tmp[$this->convertToLeadingUpper($k)]
173 = $v;
174 }
175 $rec = $tmp;
176 }
177
178 if ($a_set) {
179 $this->data[] = $rec;
180 }
181 $ret[] = $rec;
182 }
183 return $ret;
184 }
convertToLeadingUpper(string $a_str)
Make xyz_abc a XyzAbc string.
ilDBInterface $db

Referenced by ilCalendarDataSet\readData(), ilCOPageDataSet\readData(), ilExerciseDataSet\readData(), ilGlossaryDataSet\readData(), ilHelpDataSet\readData(), ilHTMLLearningModuleDataSet\readData(), ilItemGroupDataSet\readData(), ilMediaCastDataSet\readData(), ilNewsDataSet\readData(), ilPollDataSet\readData(), ilPortfolioDataSet\readData(), ilRatingDataSet\readData(), ilSessionDataSet\readData(), ilSkillDataSet\readData(), ilStyleDataSet\readData(), ilSurveyDataSet\readData(), ilTaxonomyDataSet\readData(), ilUserDataSet\readData(), and ilWikiDataSet\readData().

+ Here is the caller graph for this function:

◆ getDSPrefix()

ilDataSet::getDSPrefix ( )

Definition at line 141 of file class.ilDataSet.php.

141 : string
142 {
143 return $this->ds_prefix;
144 }
string $ds_prefix

References $ds_prefix.

Referenced by getDSPrefixString().

+ Here is the caller graph for this function:

◆ getDSPrefixString()

ilDataSet::getDSPrefixString ( )

Definition at line 146 of file class.ilDataSet.php.

146 : string
147 {
148 if ($this->getDSPrefix() !== "") {
149 return $this->getDSPrefix() . ":";
150 }
151 return "";
152 }

References getDSPrefix().

+ Here is the call graph for this function:

◆ getExportDirInContainer()

ilDataSet::getExportDirInContainer ( string  $exp_dir)
protected

Definition at line 273 of file class.ilDataSet.php.

273 : string
274 {
275 // note, the export returns in ILIAS 10 (Jan 2024) something like
276 // 1737382047__0__cat_436/components/ILIAS/Style/set_0/dsDir_1
277 // whereas ILIAS 9 returned
278 // Services/Style/set_1/expDir_1/dsDir_1
279 // thus we skip the 1737382047__0__cat_436/ part since it would be redundant
280 // an make import fail
281 if (str_contains($exp_dir, "components/")) {
282 $exp_dir = substr($exp_dir, strpos($exp_dir, "components/"));
283 }
284 return $exp_dir;
285 }

◆ getImport()

ilDataSet::getImport ( )

Definition at line 482 of file class.ilDataSet.php.

483 {
484 return $this->import;
485 }
ilSurveyImporter $import
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ getImportDirectory()

ilDataSet::getImportDirectory ( )

Definition at line 131 of file class.ilDataSet.php.

131 : string
132 {
134 }
string $import_directory

References $import_directory.

Referenced by ilUserDataSet\importRecord().

+ Here is the caller graph for this function:

◆ getIRSSContainerExportConfig()

ilDataSet::getIRSSContainerExportConfig ( StorableResource  $source_container,
string  $source_path,
string  $target_path = "" 
)
protected

Definition at line 374 of file class.ilDataSet.php.

379 return new IRSSContainerExportConfig(
380 $source_container,
381 $source_path,
382 $target_path
383 );
384 }

Referenced by ilHTMLLearningModuleDataSet\getContainerExportConfig(), and ilStyleDataSet\getContainerExportConfig().

+ Here is the caller graph for this function:

◆ getNamespaces()

ilDataSet::getNamespaces ( array &  $namespaces,
string  $a_entity,
string  $a_schema_version 
)

Definition at line 429 of file class.ilDataSet.php.

429 : void
430 {
431 $ns = $this->getXmlNamespace($a_entity, $a_schema_version);
432 if ($ns !== "") {
433 $namespaces[$a_entity] = $ns;
434 }
435 // add types of dependent entities
436 $deps = $this->getDependencies($a_entity, $a_schema_version, null, null);
437 foreach ($deps as $dp => $w) {
438 $this->getNamespaces($namespaces, $dp, $a_schema_version);
439 }
440 }
getNamespaces(array &$namespaces, string $a_entity, string $a_schema_version)
getXmlNamespace(string $a_entity, string $a_schema_version)

◆ getSupportedVersions()

◆ getTypes()

ilDataSet::getTypes ( string  $a_entity,
string  $a_version 
)
abstractprotected

◆ getXMLEntityName()

ilDataSet::getXMLEntityName ( string  $a_entity,
string  $a_version 
)

Get entity name for xml (may be overwritten)

Definition at line 464 of file class.ilDataSet.php.

464 : string
465 {
466 return $a_entity;
467 }

◆ getXMLEntityTag()

ilDataSet::getXMLEntityTag ( string  $a_entity,
string  $a_schema_version 
)

Get entity tag.

Definition at line 472 of file class.ilDataSet.php.

472 : string
473 {
474 return $this->convertToLeadingUpper($a_entity);
475 }

◆ getXmlNamespace()

◆ getXmlRecord()

ilDataSet::getXmlRecord ( string  $a_entity,
string  $a_version,
array  $a_set 
)

Get xml record for version.

Parameters
array$a_setabstract data record

Reimplemented in ilBlogDataSet, ilContentPageDataSet, ilExerciseDataSet, ilHTMLLearningModuleDataSet, ilItemGroupDataSet, ilMediaObjectDataSet, ilPollDataSet, ilPortfolioDataSet, ilSessionDataSet, ilStyleDataSet, and ilUserDataSet.

Definition at line 446 of file class.ilDataSet.php.

446 : array
447 {
448 return $a_set;
449 }

◆ getXmlRepresentation()

ilDataSet::getXmlRepresentation ( string  $a_entity,
string  $a_schema_version,
?array  $a_ids,
string  $a_field = "",
bool  $a_omit_header = false,
bool  $a_omit_types = false 
)
final

Get xml representation <dataset install_id="123" install_url="..."> <types entity="table_name" version="4.0.1"> <ftype name="field_1" type="text" > <ftype name="field_2" type="date" > <ftype name="field_3" type="integer" > </types> <types ...> ... </types> <set entity="table_name"> <rec> <field_1>content</field_1> <field_2>my_date</field_2> <field_3>my_number</field_3> </rec> ... </set> </dataset>

Definition at line 222 of file class.ilDataSet.php.

229 : string {
230 $this->dircnt = 1;
231
232 // init writer
233 $writer = new ilXmlWriter();
234 if (!$a_omit_header) {
235 $writer->xmlHeader();
236 }
237
238 // collect namespaces
239 $namespaces = $prefixes = array();
240 $this->getNamespaces($namespaces, $a_entity, $a_schema_version);
241 $atts = array("InstallationId" => IL_INST_ID,
242 "InstallationUrl" => ILIAS_HTTP_PATH, "TopEntity" => $a_entity);
243 $cnt = 1;
244 foreach ($namespaces as $entity => $ns) {
245 $prefix = "ns" . $cnt;
246 $prefixes[$entity] = $prefix;
247 // $atts["xmlns:".$prefix] = $ns;
248 $cnt++;
249 }
250 $this->ds_log->debug("Start writing Dataset, entity: " . $a_entity . ", schema version: " . $a_schema_version .
251 ", ids: " . print_r($a_ids, true));
252
253 if ($this->getDSPrefix() !== '') {
254 $atts['xmlns:' . $this->getDSPrefix()] = self::DATASET_NS;
255 } else {
256 $atts['xmlns'] = self::DATASET_NS;
257 }
258 $writer->xmlStartTag($this->getDSPrefixString() . 'DataSet', $atts);
259 // add types
260 if (!$a_omit_types) {
261 $this->ds_log->debug("...write types");
262 $this->addTypesXml($writer, $a_entity, $a_schema_version);
263 }
264 // add records
265 $this->ds_log->debug("...write records");
266 $this->addRecordsXml($writer, $prefixes, $a_entity, $a_schema_version, $a_ids, $a_field);
267
268 $writer->xmlEndTag($this->getDSPrefixString() . "DataSet");
269
270 return $writer->xmlDumpMem(false);
271 }
const DATASET_NS
string $entity
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ getXmlTypes()

ilDataSet::getXmlTypes ( string  $a_entity,
string  $a_version 
)

Get xml types.

Returns
array types array for xml/version set in constructor

Definition at line 455 of file class.ilDataSet.php.

455 : array
456 {
457 return $this->getTypes($a_entity, $a_version);
458 }
getTypes(string $a_entity, string $a_version)
Get (abstract) types for (abstract) field names.

◆ importRecord()

ilDataSet::importRecord ( string  $a_entity,
array  $a_types,
array  $a_rec,
ilImportMapping  $a_mapping,
string  $a_schema_version 
)

◆ init()

ilDataSet::init ( string  $a_entity,
string  $a_schema_version 
)
final

Init.

Parameters
string(abstract) entity name
stringversion string, always the ILIAS release versions that defined the a structure or made changes to it, never use another version. Example: structure is defined in 4.1.0 and changed in 4.3.0 -> use these values only, not 4.2.0 (ask for the 4.1.0 version in ILIAS 4.2.0)

Definition at line 91 of file class.ilDataSet.php.

91 : void
92 {
93 $this->entity = $a_entity;
94 $this->schema_version = $a_schema_version;
95 $this->data = array();
96 }

◆ initByExporter()

ilDataSet::initByExporter ( ilXmlExporter  $xml_exporter)

Definition at line 121 of file class.ilDataSet.php.

121 : void
122 {
123 $this->export = $xml_exporter->getExport();
124 }

References ilXmlExporter\getExport().

+ Here is the call graph for this function:

◆ parseObjectExportId()

ilDataSet::parseObjectExportId ( string  $a_id,
?string  $a_fallback_id = null 
)
protected

Parse export id.

Returns
array type, id

Definition at line 509 of file class.ilDataSet.php.

509 : array
510 {
511 // ilias export id?
512 if (strpos($a_id, "il_") === 0) {
513 $parts = explode("_", $a_id);
514 if (count($parts) !== 4) {
515 throw new ilException("Invalid import ID '" . $a_id . "'.");
516 }
517 $inst_id = $parts[1];
518 $type = $parts[2];
519 $id = $parts[3];
520
521 // missing installation ids?
522 if (($inst_id == 0 || IL_INST_ID === "0") && !DEVMODE) {
523 return array("type" => self::EXPORT_NO_INST_ID, "id" => $a_fallback_id);
524 }
525
526 // same installation?
527 if ($inst_id == IL_INST_ID) {
528 // still existing?
529 if (ilObject::_lookupType($id) === $type) {
530 return array("type" => self::EXPORT_ID_ILIAS_LOCAL, "id" => $id);
531 }
532 // not found
533 else {
534 return array("type" => self::EXPORT_ID_ILIAS_LOCAL_INVALID, "id" => $a_fallback_id);
535 }
536 }
537 // different installation
538 else {
540 // matching type?
541 if ($id && ilObject::_lookupType($id) === $type) {
542 return array("type" => self::EXPORT_ID_ILIAS_REMOTE, "id" => $id);
543 }
544 // not found
545 else {
546 return array("type" => self::EXPORT_ID_ILIAS_REMOTE_INVALID, "id" => $a_fallback_id);
547 }
548 }
549 } else {
550 // external id
552 if ($id) {
553 return array("type" => self::EXPORT_ID, "id" => $id);
554 } else {
555 return array("type" => self::EXPORT_ID_INVALID, "id" => $a_fallback_id);
556 }
557 }
558 }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
Base class for ILIAS Exception handling.
static _lookupType(int $id, bool $reference=false)
static _getIdForImportId(string $import_id)
if($clientAssertionType !='urn:ietf:params:oauth:client-assertion-type:jwt-bearer'|| $grantType !='client_credentials') $parts
Definition: ltitoken.php:61

References $id, $parts, ilObject\_getIdForImportId(), ilObject\_lookupType(), and IL_INST_ID.

+ Here is the call graph for this function:

◆ readData()

◆ setCurrentInstallationId()

ilDataSet::setCurrentInstallationId ( string  $a_val)

Definition at line 487 of file class.ilDataSet.php.

487 : void
488 {
489 $this->current_installation_id = $a_val;
490 }

◆ setDSPrefix()

ilDataSet::setDSPrefix ( string  $a_val)

Definition at line 136 of file class.ilDataSet.php.

136 : void
137 {
138 $this->ds_prefix = $a_val;
139 }

◆ setImport()

ilDataSet::setImport ( ilSurveyImporter  $a_val)

Definition at line 477 of file class.ilDataSet.php.

477 : void
478 {
479 $this->import = $a_val;
480 }

◆ setImportDirectory()

ilDataSet::setImportDirectory ( string  $a_val)

Definition at line 126 of file class.ilDataSet.php.

126 : void
127 {
128 $this->import_directory = $a_val;
129 }

◆ stripTags()

ilDataSet::stripTags ( array  $rec,
array  $omit_keys = [] 
)
protected

Definition at line 592 of file class.ilDataSet.php.

592 : array
593 {
594 $ret_rec = [];
595 foreach ($rec as $k => $v) {
596 if (in_array($k, $omit_keys, true)) {
597 $ret_rec[$k] = $v;
598 } else {
599 $ret_rec[$k] = ilUtil::stripSlashes($v);
600 }
601 }
602 return $ret_rec;
603 }
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")

References ilUtil\stripSlashes().

Referenced by ilNewsDataSet\importRecord().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $component_export_dir

string ilDataSet::$component_export_dir = ""
protected

Definition at line 64 of file class.ilDataSet.php.

◆ $current_installation_id

string ilDataSet::$current_installation_id = ""
protected

Definition at line 57 of file class.ilDataSet.php.

◆ $data

array ilDataSet::$data = []
protected

Definition at line 58 of file class.ilDataSet.php.

◆ $db

◆ $dircnt

int ilDataSet::$dircnt = 0

Definition at line 56 of file class.ilDataSet.php.

◆ $ds_log

ilLogger ilDataSet::$ds_log
protected

Definition at line 60 of file class.ilDataSet.php.

◆ $ds_prefix

string ilDataSet::$ds_prefix = "ds"
protected

Definition at line 65 of file class.ilDataSet.php.

Referenced by getDSPrefix().

◆ $entity

string ilDataSet::$entity = ""
protected

◆ $export

ilExport ilDataSet::$export
protected

Definition at line 68 of file class.ilDataSet.php.

◆ $import

ilSurveyImporter ilDataSet::$import
protected

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

◆ $import_directory

string ilDataSet::$import_directory = ""
protected

Definition at line 61 of file class.ilDataSet.php.

Referenced by getImportDirectory().

◆ $irss

ILIAS ResourceStorage Services ilDataSet::$irss
protected

Definition at line 54 of file class.ilDataSet.php.

◆ $schema_version

string ilDataSet::$schema_version = ""
protected

Definition at line 63 of file class.ilDataSet.php.

◆ $version

string ilDataSet::$version = ""
protected

◆ DATASET_NS

const ilDataSet::DATASET_NS = 'http://www.ilias.de/Services/DataSet/ds/4_3'

◆ DATASET_NS_PREFIX

const ilDataSet::DATASET_NS_PREFIX = 'ds'

◆ EXPORT_ID

const ilDataSet::EXPORT_ID = 6

Definition at line 52 of file class.ilDataSet.php.

◆ EXPORT_ID_ILIAS_LOCAL

const ilDataSet::EXPORT_ID_ILIAS_LOCAL = 2

Definition at line 48 of file class.ilDataSet.php.

◆ EXPORT_ID_ILIAS_LOCAL_INVALID

const ilDataSet::EXPORT_ID_ILIAS_LOCAL_INVALID = 3

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

◆ EXPORT_ID_ILIAS_REMOTE

const ilDataSet::EXPORT_ID_ILIAS_REMOTE = 4

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

◆ EXPORT_ID_ILIAS_REMOTE_INVALID

const ilDataSet::EXPORT_ID_ILIAS_REMOTE_INVALID = 5

Definition at line 51 of file class.ilDataSet.php.

◆ EXPORT_ID_INVALID

const ilDataSet::EXPORT_ID_INVALID = 7

Definition at line 53 of file class.ilDataSet.php.

◆ EXPORT_NO_INST_ID

const ilDataSet::EXPORT_NO_INST_ID = 1

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


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