ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
class.HistoryManager.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
21namespace ILIAS\COPage\History;
22
26
31{
32 protected \ILIAS\COPage\PC\PCDefinition $pc_definition;
34
35 public function __construct(
36 InternalDataService $data_service,
37 InternalRepoService $repo_service,
38 InternalDomainService $domain_service
39 ) {
40 $this->history_repo = $repo_service->history();
41 $this->pc_definition = $domain_service
42 ->pc()
43 ->definition();
44 }
45
51 public function deleteOldHistoryEntries(int $x_days, int $keep_entries): bool
52 {
53 $deleted = false;
54
55 foreach ($this->history_repo->getMaxHistEntryPerPageOlderThanX($x_days) as $page) {
56 $max_deletable = $this->history_repo->getMaxDeletableNr($keep_entries, $page["parent_type"], (int) $page["page_id"], $page["lang"]);
57 $delete_lower_than_nr = min($page["max_nr"], $max_deletable);
58 if ($delete_lower_than_nr > 0) {
60 $delete_lower_than_nr,
61 $page["parent_type"],
62 (int) $page["page_id"],
63 $page["lang"]
64 );
65 $deleted = true;
66 }
67 }
68 return $deleted;
69 }
70
71
73 int $delete_lower_than_nr,
74 string $parent_type,
75 int $page_id,
76 string $lang
77 ): void {
78 $defs = $this->pc_definition->getPCDefinitions();
79 foreach ($defs as $def) {
80 $cl = $def["pc_class"];
81 $cl::deleteHistoryLowerEqualThan(
82 $parent_type,
83 $page_id,
84 $lang,
85 $delete_lower_than_nr
86 );
87 }
88
89 $this->history_repo->deleteHistoryEntriesOlderEqualThanNr(
90 $delete_lower_than_nr,
91 $parent_type,
92 $page_id,
93 $lang
94 );
95 }
96}
__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)
ILIAS COPage PC PCDefinition $pc_definition
Repository internal data service.
Repository internal repo service.
$lang
Definition: xapiexit.php:25