ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
class.ilObjectProperties.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
24 {
25  public function __construct(
26  private ilObjectCoreProperties $core_properties,
27  private ilObjectCorePropertiesRepository $core_properties_repository,
28  private ilObjectAdditionalProperties $additional_properties,
29  private ilObjectAdditionalPropertiesRepository $additional_properties_repository,
30  private ilMD $meta_data
31  ) {
32  }
33 
34  public function storeCoreProperties(): void
35  {
36  $this->core_properties_repository->store($this->core_properties);
38  $this->core_properties->getPropertyTitleAndDescription()->getTitle(),
39  $this->core_properties->getPropertyTitleAndDescription()->getDescription()
40  );
41  }
42 
43  public function getOwner(): int
44  {
45  return $this->core_properties->getOwner();
46  }
47 
48  public function withOwner(int $owner): self
49  {
50  $clone = clone $this;
51  $clone->core_properties = $this->core_properties->withOwner($owner);
52  return $clone;
53  }
54 
55  public function getImportId(): string
56  {
57  return $this->core_properties->getImportId();
58  }
59 
60  public function withImportId(string $import_id): self
61  {
62  $clone = clone $this;
63  $clone->core_properties = $this->core_properties->withImportId($import_id);
64  return $clone;
65  }
66 
68  {
69  return $this->core_properties->getPropertyTitleAndDescription();
70  }
71 
73  ilObjectPropertyTitleAndDescription $property_title_and_description
74  ): self {
75  $clone = clone $this;
76  $clone->core_properties = $this->core_properties
77  ->withPropertyTitleAndDescription($property_title_and_description);
78  return $clone;
79  }
80 
82  ilObjectPropertyTitleAndDescription $property_title_and_description
83  ): void {
84  $this->core_properties = $this->core_properties_repository->store(
85  $this->core_properties
86  ->withPropertyTitleAndDescription($property_title_and_description)
87  );
89  $property_title_and_description->getTitle(),
90  $property_title_and_description->getLongDescription()
91  );
92  }
93 
95  {
96  return $this->core_properties->getPropertyIsOnline();
97  }
98 
99  public function storePropertyIsOnline(ilObjectPropertyIsOnline $property_is_online): void
100  {
101  $this->core_properties = $this->core_properties_repository->store(
102  $this->core_properties->withPropertyIsOnline($property_is_online)
103  );
104  }
105 
106  public function withPropertyIsOnline(
107  ilObjectPropertyIsOnline $property_is_online
108  ): self {
109  $clone = clone $this;
110  $clone->core_properties = $this->core_properties
111  ->withPropertyIsOnline($property_is_online);
112  return $clone;
113  }
114 
116  {
117  return $this->additional_properties->getPropertyTitleAndIconVisibility();
118  }
119 
121  ilObjectPropertyTitleAndIconVisibility $property_title_and_icon_visibility
122  ): void {
123  $this->additional_properties = $this->additional_properties_repository->store(
124  $this->additional_properties
125  ->withPropertyTitleAndIconVisibility($property_title_and_icon_visibility)
126  );
127  }
128 
130  {
131  return $this->additional_properties->getPropertyHeaderActionVisibility();
132  }
133 
135  ilObjectPropertyHeaderActionVisibility $property_header_action_visibility
136  ): void {
137  $this->additional_properties = $this->additional_properties_repository->store(
138  $this->additional_properties
139  ->withPropertyHeaderActionVisibility($property_header_action_visibility)
140  );
141  }
142 
144  {
145  return $this->additional_properties->getPropertyInfoTabVisibility();
146  }
147 
149  ilObjectPropertyInfoTabVisibility $property_info_tab_visibility
150  ): void {
151  $this->additional_properties = $this->additional_properties_repository->store(
152  $this->additional_properties
153  ->withPropertyInfoTabVisibility($property_info_tab_visibility)
154  );
155  }
156 
158  {
159  return $this->core_properties->getPropertyTileImage();
160  }
161 
162  public function storePropertyTileImage(
163  ilObjectPropertyTileImage $property_tile_image
164  ): void {
165  $this->core_properties = $this->core_properties_repository->store(
166  $this->core_properties
167  ->withPropertyTileImage($property_tile_image)
168  );
169  }
170 
172  {
173  return $this->additional_properties->getPropertyIcon();
174  }
175 
176  public function storePropertyIcon(
177  ilObjectPropertyIcon $property_icon
178  ): void {
179  $this->additional_properties = $this->additional_properties_repository->store(
180  $this->additional_properties
181  ->withPropertyIcon($property_icon)
182  );
183  }
184 
186  string $title,
187  string $description
188  ): void {
189  $general_metadata = $this->meta_data->getGeneral();
190  if ($general_metadata === null) {
191  return;
192  }
193  $general_metadata->setTitle($title);
194 
195  // sets first description (maybe not appropriate)
196  $general_metadata_ids = $general_metadata->getDescriptionIds();
197  if ($general_metadata_ids !== []) {
198  $general_metadata_description = $general_metadata->getDescription($general_metadata_ids[0]);
199  $general_metadata_description->setDescription($description);
200  $general_metadata_description->update();
201  }
202  $general_metadata->update();
203  }
204 }
withPropertyTitleAndDescription(ilObjectPropertyTitleAndDescription $property_title_and_description)
storePropertyIsOnline(ilObjectPropertyIsOnline $property_is_online)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
withImportId(string $import_id)
storePropertyTileImage(ilObjectPropertyTileImage $property_tile_image)
storePropertyTitleAndDescription(ilObjectPropertyTitleAndDescription $property_title_and_description)
storePropertyInfoTabVisibility(ilObjectPropertyInfoTabVisibility $property_info_tab_visibility)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
storePropertyHeaderActionVisibility(ilObjectPropertyHeaderActionVisibility $property_header_action_visibility)
updateMetadataForTitleAndDescription(string $title, string $description)
withPropertyIsOnline(ilObjectPropertyIsOnline $property_is_online)
__construct(private ilObjectCoreProperties $core_properties, private ilObjectCorePropertiesRepository $core_properties_repository, private ilObjectAdditionalProperties $additional_properties, private ilObjectAdditionalPropertiesRepository $additional_properties_repository, private ilMD $meta_data)
storePropertyTitleAndIconVisibility(ilObjectPropertyTitleAndIconVisibility $property_title_and_icon_visibility)
storePropertyIcon(ilObjectPropertyIcon $property_icon)