ILIAS  release_8 Revision v8.24
class.HistoryManager.php
Go to the documentation of this file.
1<?php
2
3declare(strict_types=1);
4
21namespace ILIAS\COPage\History;
22
26
31{
33
34 public function __construct(
35 InternalDataService $data_service,
36 InternalRepoService $repo_service,
37 InternalDomainService $domain_service
38 ) {
39 $this->history_repo = $repo_service->history();
40 }
41
47 public function deleteOldHistoryEntries(int $x_days, int $keep_entries): bool
48 {
49 $deleted = false;
50
51 foreach ($this->history_repo->getMaxHistEntryPerPageOlderThanX($x_days) as $page) {
52 $max_deletable = $this->history_repo->getMaxDeletableNr($keep_entries, $page["parent_type"], (int) $page["page_id"], $page["lang"]);
53 $delete_lower_than_nr = min($page["max_nr"], $max_deletable);
54 if ($delete_lower_than_nr > 0) {
56 $delete_lower_than_nr,
57 $page["parent_type"],
58 (int) $page["page_id"],
59 $page["lang"]
60 );
61 $deleted = true;
62 }
63 }
64 return $deleted;
65 }
66
67
69 int $delete_lower_than_nr,
70 string $parent_type,
71 int $page_id,
72 string $lang
73 ): void {
74 $defs = \ilCOPagePCDef::getPCDefinitions();
75 foreach ($defs as $def) {
76 $cl = $def["pc_class"];
77 $cl::deleteHistoryLowerEqualThan(
78 $parent_type,
79 $page_id,
80 $lang,
81 $delete_lower_than_nr
82 );
83 }
84
85 $this->history_repo->deleteHistoryEntriesOlderEqualThanNr(
86 $delete_lower_than_nr,
87 $parent_type,
88 $page_id,
89 $lang
90 );
91 }
92}
__construct(InternalDataService $data_service, InternalRepoService $repo_service, InternalDomainService $domain_service)
deleteHistoryEntriesOlderEqualThanNr(int $delete_lower_than_nr, string $parent_type, int $page_id, string $lang)
deleteOldHistoryEntries(int $x_days, int $keep_entries)
Repository internal data service.
Repository internal repo service.
COPage PC elements definition handler.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$lang
Definition: xapiexit.php:26