ILIAS  trunk Revision v12.0_alpha-1227-g7ff6d300864
BlockDTO.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
23use ilDateTime;
24
26{
27 public function __construct(
28 private string $type,
29 private readonly int $ref_id,
30 private readonly int $obj_id,
31 private string $title,
32 private string $description,
33 private ?ilDateTime $start_date = null,
34 private ?ilDateTime $end_date = null,
35 private array $additional_data = []
36 ) {
37 }
38
39 final public function getType(): string
40 {
41 return $this->type;
42 }
43
44 final public function setType(string $type): void
45 {
46 $this->type = $type;
47 }
48
49 final public function getRefId(): int
50 {
51 return $this->ref_id;
52 }
53
54 final public function getObjId(): int
55 {
56 return $this->obj_id;
57 }
58
59 final public function getTitle(): string
60 {
61 return $this->title;
62 }
63
64 final public function setTitle(string $title): void
65 {
66 $this->title = $title;
67 }
68
69 final public function getDescription(): string
70 {
71 return $this->description;
72 }
73
74 final public function setDescription(string $description): void
75 {
76 $this->description = $description;
77 }
78
79 final public function getStartDate(): ?ilDateTime
80 {
81 return $this->start_date;
82 }
83
84 final public function setStartDate(?ilDateTime $start_date): void
85 {
86 $this->start_date = $start_date;
87 }
88
89 final public function getEndDate(): ?ilDateTime
90 {
91 return $this->end_date;
92 }
93
94 final public function setEndDate(?ilDateTime $end_date): void
95 {
96 $this->end_date = $end_date;
97 }
98
99 final public function hasNotStarted(): bool
100 {
101 return $this->start_date && $this->start_date->get(IL_CAL_UNIX) > time();
102 }
103
104 final public function hasEnded(): bool
105 {
106 return $this->end_date && $this->end_date->get(IL_CAL_UNIX) < time();
107 }
108
109 final public function isRunning(): bool
110 {
111 return !$this->hasNotStarted() && !$this->hasEnded();
112 }
113
114 final public function isDated(): bool
115 {
116 return $this->start_date || $this->end_date;
117 }
118
119 final public function getAdditionalData(): array
120 {
121 return $this->additional_data;
122 }
123
124 final public function setAdditionalData(array $additional_data): void
125 {
126 $this->additional_data = $additional_data;
127 }
128
129 final public function toArray(): array
130 {
131 return [
132 'type' => $this->type,
133 'ref_id' => $this->ref_id,
134 'obj_id' => $this->obj_id,
135 'title' => $this->title,
136 'description' => $this->description,
137 'start_date' => $this->start_date?->get(IL_CAL_DATETIME),
138 'end_date' => $this->end_date?->get(IL_CAL_DATETIME),
139 'additional_data' => $this->additional_data
140 ];
141 }
142}
__construct(private string $type, private readonly int $ref_id, private readonly int $obj_id, private string $title, private string $description, private ?ilDateTime $start_date=null, private ?ilDateTime $end_date=null, private array $additional_data=[])
Definition: BlockDTO.php:27
setStartDate(?ilDateTime $start_date)
Definition: BlockDTO.php:84
setAdditionalData(array $additional_data)
Definition: BlockDTO.php:124
setEndDate(?ilDateTime $end_date)
Definition: BlockDTO.php:94
const IL_CAL_UNIX
const IL_CAL_DATETIME
@classDescription Date and time handling
$ref_id
Definition: ltiauth.php:66