Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="Tracking">
<xs:complexType>
<xs:sequence>
<xs:element name="LPCollection" minOccurs="1" maxOccurs="1"/>
<xs:element name="LPStatusCollection" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="object_id" type="xs:integer"/>
<xs:attribute name="object_type" type="xs:string"/>
<xs:attribute name="u_mode" type="xs:integer"/>
<xs:attribute name="visits" type="xs:integer"/>
</xs:complexType>
</xs:element>

<xs:element name="LPCollection">
<xs:complexType>
<xs:sequence>
<xs:element name="LPCollectionElement" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="LPCollectionElement">
<xs:complexType>
<xs:attribute name="item_id" type="xs:integer"/>
<xs:attribute name="grouping_id" type="xs:integer"/>
<xs:attribute name="num_obligatory" type="xs:integer"/>
<xs:attribute name="active" type="xs:integer"/>
<xs:attribute name="lp_mode" type="xs:integer"/>
</xs:complexType>
</xs:element>

<xs:element name="LPStatusCollection">
<xs:complexType>
<xs:sequence>
<xs:element name="LPStatus" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="LPStatus">
<xs:complexType>
<xs:sequence>
<xs:any processContents="skip" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="lp_status_id" type="xs:integer"/>
</xs:complexType>
</xs:element>
</xs:schema>
5 changes: 5 additions & 0 deletions components/ILIAS/Group/classes/class.ilGroupExporter.php
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,11 @@ public function getXmlExportTailDependencies(string $a_entity, string $a_target_
"ids" => $md_ids
);
}
$deps[] = [
"component" => "components/ILIAS/Tracking",
"entity" => "lpsettings",
"ids" => $a_ids
];
return $deps;
}

Expand Down
67 changes: 67 additions & 0 deletions components/ILIAS/Tracking/classes/DB/Factory.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<?php

/**
* This file is part of ILIAS, a powerful learning management system
* published by ILIAS open source e-Learning e.V.
*
* ILIAS is licensed with the GPL-3.0,
* see https://www.gnu.org/licenses/gpl-3.0.en.html
* You should have received a copy of said license along with the
* source code, too.
*
* If this is not the case or you just want to try ILIAS, you'll find
* us at:
* https://www.ilias.de
* https://github.com/ILIAS-eLearning
*
*********************************************************************/

declare(strict_types=1);

namespace ILIAS\Tracking\DB;

use ilDBInterface;
use ILIAS\Tracking\DB\LPCollection\Factory as LPCollectionFactory;
use ILIAS\Tracking\DB\LPCollection\FactoryInterface as LPCollectionFactoryInterface;
use ILIAS\Tracking\DB\LPCollectionManual\Factory as LPCollectionManualFactory;
use ILIAS\Tracking\DB\LPCollectionManual\FactoryInterface as LPCollectionManualFactoryInterface;
use ILIAS\Tracking\DB\LPMarks\Factory as LPMarksFactory;
use ILIAS\Tracking\DB\LPMarks\FactoryInterface as LPMarksFactoryInterface;
use ILIAS\Tracking\DB\LPSettings\Factory as LPSettingsFactory;
use ILIAS\Tracking\DB\LPSettings\FactoryInterface as LPSettingsFactoryInterface;

class Factory implements FactoryInterface
{
public function __construct(
protected ilDBInterface $db
) {
}

public function lpSettings(): LPSettingsFactoryInterface
{
return new LPSettingsFactory(
$this->db
);
}

public function lpCollection(): LPCollectionFactoryInterface
{
return new LPCollectionFactory(
$this->db
);
}

public function lpMarks(): LPMarksFactoryInterface
{
return new LPMarksFactory(
$this->db
);
}

public function lpCollectionManual(): LPCollectionManualFactoryInterface
{
return new LPCollectionManualFactory(
$this->db
);
}
}
38 changes: 38 additions & 0 deletions components/ILIAS/Tracking/classes/DB/FactoryInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<?php

/**
* This file is part of ILIAS, a powerful learning management system
* published by ILIAS open source e-Learning e.V.
*
* ILIAS is licensed with the GPL-3.0,
* see https://www.gnu.org/licenses/gpl-3.0.en.html
* You should have received a copy of said license along with the
* source code, too.
*
* If this is not the case or you just want to try ILIAS, you'll find
* us at:
* https://www.ilias.de
* https://github.com/ILIAS-eLearning
*
*********************************************************************/

declare(strict_types=1);

namespace ILIAS\Tracking\DB;

use ILIAS\Tracking\DB\LPCollection\FactoryInterface as LPCollectionFactoryInterface;
use ILIAS\Tracking\DB\LPCollectionManual\FactoryInterface as LPCollectionManualFactoryInterface;
use ILIAS\Tracking\DB\LPMarks\FactoryInterface as LPMarksFactoryInterface;
use ILIAS\Tracking\DB\LPSettings\FactoryInterface as LPSettingsFactoryInterface;

interface FactoryInterface
{
public function lpSettings(): LPSettingsFactoryInterface;

public function lpCollection(): LPCollectionFactoryInterface;

public function lpMarks(): LPMarksFactoryInterface;

public function lpCollectionManual(): LPCollectionManualFactoryInterface;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?php

/**
* This file is part of ILIAS, a powerful learning management system
* published by ILIAS open source e-Learning e.V.
*
* ILIAS is licensed with the GPL-3.0,
* see https://www.gnu.org/licenses/gpl-3.0.en.html
* You should have received a copy of said license along with the
* source code, too.
*
* If this is not the case or you just want to try ILIAS, you'll find
* us at:
* https://www.ilias.de
* https://github.com/ILIAS-eLearning
*
*********************************************************************/

declare(strict_types=1);

namespace ILIAS\Tracking\DB\LPCollection\Element;

class Factory implements FactoryInterface
{
public function lpCollection(
LPCollectionElementInterface ...$elements
): LPCollectionInterface {
return new LPCollection($this, ...$elements);
}

public function lpCollectionElement(): LPCollectionElementInterface
{
return new LPCollectionElement();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?php

/**
* This file is part of ILIAS, a powerful learning management system
* published by ILIAS open source e-Learning e.V.
*
* ILIAS is licensed with the GPL-3.0,
* see https://www.gnu.org/licenses/gpl-3.0.en.html
* You should have received a copy of said license along with the
* source code, too.
*
* If this is not the case or you just want to try ILIAS, you'll find
* us at:
* https://www.ilias.de
* https://github.com/ILIAS-eLearning
*
*********************************************************************/

declare(strict_types=1);

namespace ILIAS\Tracking\DB\LPCollection\Element;

interface FactoryInterface
{
public function lpCollectionElement(): LPCollectionElementInterface;

public function lpCollection(
LPCollectionElementInterface ...$elements
): LPCollectionInterface;
}
Loading
Loading