3 declare(strict_types=1);
27 $this->tree = $DIC->repositoryTree();
28 $this->
logger = $DIC->logger()->meta();
29 $this->cronresult = $result;
37 $obj_ids = $this->
filter($obj_ids);
38 $num = $this->
harvest($obj_ids);
40 $message =
'Created ' . $num .
' new objects. <br />';
44 $message .=
'Deleted ' . $deleted .
' deprecated objects.';
46 if (!$deleted && !$num) {
51 $this->cronresult->setMessage(
$message);
55 $this->cronresult->setMessage($e->getMessage());
66 $collectable_types = $this->
settings->getHarvestingTypes();
67 $copyright_ids = $this->
settings->getCopyRightTemplatesInLomFormat();
74 $this->
logger->debug(
'Found ' . count($collectable_types) .
' collectable objects.');
77 return $collectable_obj_ids;
84 protected function filter(array $a_collectable_obj_ids): array
87 foreach ($a_collectable_obj_ids as $obj_id) {
89 if ($status->isCreated()) {
90 $this->
logger->debug(
'Object already created: ' . $obj_id);
93 if ($status->isBlocked()) {
94 $this->
logger->debug(
'Object creation is blocked: ' . $obj_id);
100 if (!$this->tree->isDeleted(
$ref_id)) {
105 $this->
logger->notice(
'Ignoring deleted object: ' . $obj_id);
108 $filtered[] = $obj_id;
111 $this->
logger->debug(
'Result after filtering.');
120 protected function harvest(array $a_collectable_obj_ids):
int 123 foreach ($a_collectable_obj_ids as $obj_id) {
130 $this->
logger->warning(
'Found invalid reference: ' .
$ref_id);
132 $this->
logger->debug(
'Creating new reference for object: ' . $obj_id);
141 $this->
logger->debug(
'Create new reference');
143 $this->
logger->debug(
'Put in tree');
145 $this->
logger->debug(
'Set pernissions');
148 $this->
logger->debug(
'Set status');
151 $status->setBlocked(
false);
162 $this->
logger->warning(
'Found invalid reference: ' . $a_ref_id);
165 $this->
logger->debug(
'Deleting reference...');
183 if ($status->isBlocked()) {
184 $this->
logger->debug(
'Deleting blocked object ressource.');
192 foreach ($this->
settings->getCopyRightTemplatesInLomFormat() as $cp) {
193 if (strcmp($copyright, $cp) === 0) {
199 $this->
logger->debug(
'Deleting deprecated object with ref_id: ' . $ref_id);
setHarvestRefId(int $a_ref_id)
static lookupObjIdByHarvestingId(int $a_href_id)
static _getAllReferences(int $id)
get all reference ids for object ID
deleteObject(int $a_ref_id)
Cron job for definition for oer harvesting.
static _lookupDescription(int $a_rbac_id, int $a_obj_id)
setPermissions(int $parent_ref_id)
static _lookupObjId(int $ref_id)
createReference()
creates reference for object
collect()
Collect all obj_ids with copyright settings which are collectable.
__construct(ilCronJobResult $result)
static getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Cron job for definition for oer harvesting.
ilOerHarvesterSettings $settings
harvest(array $a_collectable_obj_ids)
putInTree(int $parent_ref_id)
maybe this method should be in tree object!?
filter(array $a_collectable_obj_ids)
harvestObject(ilObject $object)
ilCronJobResult $cronresult
static lookupRightsByTypeAndCopyright(array $a_types, array $a_copyright)