ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
class.ilMultipleImagesAdditionalIndexLevelRemover.php
Go to the documentation of this file.
1<?php
2
23{
25 'name', 'tmp_name', 'type', 'error', 'size'
26 ];
27
28 protected $postVar;
29
30 public function getPostVar()
31 {
32 return $this->postVar;
33 }
34
35 public function setPostVar($postVar): void
36 {
37 $this->postVar = $postVar;
38 }
39
40 protected function getFilesSubmissionProperties(): array
41 {
43 }
44 public function manipulateFormInputValues(array $inputValues): array
45 {
46 return $inputValues;
47 }
48
49 public function manipulateFormSubmitValues(array $submitValues): array
50 {
51 $submitValues = $this->removeAdditionalSubFieldsLevelFromSubmitValues($submitValues);
52
53 if ($_FILES) {
55 $_FILES[$this->getPostVar()]
56 );
57 }
58
59 return $submitValues;
60 }
61 protected function isSubFieldAvailable($values, $subFieldName): bool
62 {
63 if (!is_array($values)) {
64 return false;
65 }
66
67 if (!isset($values[$subFieldName])) {
68 return false;
69 }
70
71 if (!is_array($values[$subFieldName])) {
72 return false;
73 }
74
75 return true;
76 }
77
78 protected function isIteratorSubfieldAvailable($values): bool
79 {
81 }
82
83 protected function isUploadSubfieldAvailable($values): bool
84 {
86 }
87
88 protected function removeAdditionalSubFieldsLevelFromSubmitValues($values): array
89 {
90 if (!$this->isIteratorSubfieldAvailable($values)) {
91 return $values;
92 }
93
94 $storedImages = $values[ilMultipleImagesInputGUI::STORED_IMAGE_SUBFIELD_NAME] ?? [];
95 $actualValues = [];
96
97 foreach ($values[ilMultipleImagesInputGUI::ITERATOR_SUBFIELD_NAME] as $index => $value) {
98 if (!isset($storedImages[$index])) {
99 $actualValues[$index] = '';
100 continue;
101 }
102
103 $actualValues[$index] = $storedImages[$index];
104 }
105
106 return $actualValues;
107 }
108
110 {
111 if (!$this->isUploadSubfieldAvailable($uploadProperty)) {
112 return $uploadProperty;
113 }
114
115 foreach ($uploadProperty as $subField => $submittedFile) {
116 if (!is_array($submittedFile)) {
117 unset($uploadProperty[$subField]);
118 continue;
119 }
120 foreach ($submittedFile as $identifier => $uploadValue) {
121 $uploadProperty[$identifier] = $uploadValue;
122 }
123
124 unset($uploadProperty[$subField]);
125 }
126
127 return $uploadProperty;
128 }
129
130 protected function removeAdditionalSubFieldsLevelFromFilesSubmit($filesSubmit)
131 {
132 foreach ($this->getFilesSubmissionProperties() as $uploadProperty) {
133 if (!isset($filesSubmit[$uploadProperty])) {
134 continue;
135 }
136
137 $filesSubmit[$uploadProperty] = $this->removeAdditionalSubFieldsLevelFromFilesSubmitProperty(
138 $filesSubmit[$uploadProperty]
139 );
140 }
141
142 return $filesSubmit;
143 }
144}
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...