ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilAssOrderingFormValuesObjectsConverter Class Reference
+ Inheritance diagram for ilAssOrderingFormValuesObjectsConverter:
+ Collaboration diagram for ilAssOrderingFormValuesObjectsConverter:

Public Member Functions

 __construct ()
 
 getContext ()
 
 setContext ($context)
 
 getPostVar ()
 
 setPostVar ($postVar)
 
 getImageRemovalCommand ()
 
 setImageRemovalCommand ($imageRemovalCommand)
 
 getImageUrlPath ()
 
 setImageUrlPath ($imageUrlPath)
 
 getImageFsPath ()
 
 setImageFsPath ($imageFsPath)
 
 getThumbnailPrefix ()
 
 setThumbnailPrefix ($thumbnailPrefix)
 
 getIndentationsPostVar ()
 
 manipulateFormInputValues (array $input_values)
 
 manipulateFormSubmitValues (array $submit_values)
 
 constructElementsFromValues (array $values)
 
 manipulateFormInputValues (array $inputValues)
 
 manipulateFormSubmitValues (array $submitValues)
 

Data Fields

const INDENTATIONS_POSTVAR_SUFFIX = '_ordering'
 
const INDENTATIONS_POSTVAR_SUFFIX_JS = '__default'
 
const CONTEXT_MAINTAIN_ELEMENT_TEXT = 'maintainItemText'
 
const CONTEXT_MAINTAIN_ELEMENT_IMAGE = 'maintainItemImage'
 
const CONTEXT_MAINTAIN_HIERARCHY = 'maintainHierarchy'
 

Protected Member Functions

 needsConvertToValues ($elements_or_values)
 
 collectValuesFromElements (array $elements)
 
 getTextContentValueFromObject (ilAssOrderingElement $element)
 
 getImageContentValueFromObject (ilAssOrderingElement $element)
 
 getStructValueFromObject (ilAssOrderingElement $element)
 
 needsConvertToElements ($values_or_elements)
 
 fetchSubmittedImageFilename ($identifier)
 
 fetchSubmittedUploadFilename ($identifier)
 
 fetchSubmittedFileUploadProperty (mixed $file_upload, string $property)
 
 fetchElementFileUpload ($identifier)
 
 fetchSubmittedUploadFiles ()
 
 getFileSubmitsHavingActualUpload (array $submitted_upload_files)
 
 getFileSubmitDataRestructuredByIdentifiers ()
 
 getFileSubmitData ()
 
 wasImageRemovalRequested ($identifier)
 TODO: Instead of accessing post, the complete ilFormValuesManipulator should be aware of a server request or the corresponding processed input values. More...
 

Protected Attributes

 $context = null
 
 $postVar = null
 
 $imageRemovalCommand = null
 
 $imageUrlPath
 
 $imageFsPath
 
 $thumbnailPrefix
 

Private Attributes

readonly RequestDataCollector $request_data_collector
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilAssOrderingFormValuesObjectsConverter::__construct ( )

Definition at line 69 of file class.ilAssOrderingFormValuesObjectsConverter.php.

70 {
71 $local_dic = QuestionPoolDIC::dic();
72 $this->request_data_collector = $local_dic['request_data_collector'];
73 }

Member Function Documentation

◆ collectValuesFromElements()

ilAssOrderingFormValuesObjectsConverter::collectValuesFromElements ( array  $elements)
protected

Definition at line 189 of file class.ilAssOrderingFormValuesObjectsConverter.php.

189 : array
190 {
191 $values = [];
192
193 foreach ($elements as $identifier => $ordering_element) {
194 switch ($this->getContext()) {
196
197 $values[$identifier] = $this->getTextContentValueFromObject($ordering_element);
198 break;
199
201
202 $values[$identifier] = $this->getImageContentValueFromObject($ordering_element);
203 break;
204
206
207 $values[$identifier] = $this->getStructValueFromObject($ordering_element);
208 break;
209
210 default:
211 throw new ilFormException('unsupported context: ' . $this->getContext());
212 }
213 }
214
215 return $values;
216 }

References CONTEXT_MAINTAIN_ELEMENT_IMAGE, CONTEXT_MAINTAIN_ELEMENT_TEXT, CONTEXT_MAINTAIN_HIERARCHY, getContext(), getImageContentValueFromObject(), getStructValueFromObject(), and getTextContentValueFromObject().

Referenced by manipulateFormInputValues().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ constructElementsFromValues()

ilAssOrderingFormValuesObjectsConverter::constructElementsFromValues ( array  $values)

Definition at line 264 of file class.ilAssOrderingFormValuesObjectsConverter.php.

264 : array
265 {
266 $elements = [];
267
268 $content = $values;
269 if (array_key_exists('content', $values)) {
270 $content = $values['content'];
271 }
272
273 $position = [];
274 if (array_key_exists('position', $values)) {
275 $position = $values['position'];
276 }
277
278 $indentation = [];
279 if (array_key_exists('indentation', $values)) {
280 $indentation = $values['indentation'];
281 }
282
283 $counter = 0;
284 foreach ($content as $identifier => $value) {
285 $element = new ilAssOrderingElement();
286
287 $element->setRandomIdentifier((int) $identifier);
288 $element->setPosition((int) ($position[$identifier] ?? $counter));
289 $element->setContent($value);
290 $element->setIndentation((int) ($indentation[$identifier] ?? 0));
291
292 if ($this->getContext() === self::CONTEXT_MAINTAIN_ELEMENT_IMAGE) {
293 $element->setUploadImageName($this->fetchSubmittedImageFilename($identifier));
294 $element->setUploadImageFile($this->fetchSubmittedUploadFilename($identifier));
295
296 $element->setImageRemovalRequest($this->wasImageRemovalRequested($identifier));
297 }
298
299 $elements[$identifier] = $element;
300 $counter++;
301 }
302
303 return $elements;
304 }
wasImageRemovalRequested($identifier)
TODO: Instead of accessing post, the complete ilFormValuesManipulator should be aware of a server req...
$counter

References $counter, fetchSubmittedImageFilename(), fetchSubmittedUploadFilename(), getContext(), and wasImageRemovalRequested().

Referenced by manipulateFormSubmitValues().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fetchElementFileUpload()

ilAssOrderingFormValuesObjectsConverter::fetchElementFileUpload (   $identifier)
protected

Definition at line 323 of file class.ilAssOrderingFormValuesObjectsConverter.php.

References fetchSubmittedUploadFiles().

Referenced by fetchSubmittedImageFilename(), and fetchSubmittedUploadFilename().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fetchSubmittedFileUploadProperty()

ilAssOrderingFormValuesObjectsConverter::fetchSubmittedFileUploadProperty ( mixed  $file_upload,
string  $property 
)
protected

Definition at line 318 of file class.ilAssOrderingFormValuesObjectsConverter.php.

319 {
320 return $file_upload[$property] ?? null;
321 }

Referenced by fetchSubmittedImageFilename(), and fetchSubmittedUploadFilename().

+ Here is the caller graph for this function:

◆ fetchSubmittedImageFilename()

ilAssOrderingFormValuesObjectsConverter::fetchSubmittedImageFilename (   $identifier)
protected

Definition at line 306 of file class.ilAssOrderingFormValuesObjectsConverter.php.

307 {
308 $fileUpload = $this->fetchElementFileUpload($identifier);
309 return $this->fetchSubmittedFileUploadProperty($fileUpload, 'name');
310 }

References fetchElementFileUpload(), and fetchSubmittedFileUploadProperty().

Referenced by constructElementsFromValues().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fetchSubmittedUploadFilename()

ilAssOrderingFormValuesObjectsConverter::fetchSubmittedUploadFilename (   $identifier)
protected

Definition at line 312 of file class.ilAssOrderingFormValuesObjectsConverter.php.

313 {
314 $fileUpload = $this->fetchElementFileUpload($identifier);
315 return $this->fetchSubmittedFileUploadProperty($fileUpload, 'tmp_name');
316 }

References fetchElementFileUpload(), and fetchSubmittedFileUploadProperty().

Referenced by constructElementsFromValues().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fetchSubmittedUploadFiles()

ilAssOrderingFormValuesObjectsConverter::fetchSubmittedUploadFiles ( )
protected

Definition at line 328 of file class.ilAssOrderingFormValuesObjectsConverter.php.

328 : array
329 {
330 $submitted_upload_files = $this->getFileSubmitDataRestructuredByIdentifiers();
331 //$submittedUploadFiles = $this->getFileSubmitsHavingActualUpload($submittedUploadFiles);
332 return $submitted_upload_files;
333 }

References getFileSubmitDataRestructuredByIdentifiers().

Referenced by fetchElementFileUpload().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getContext()

ilAssOrderingFormValuesObjectsConverter::getContext ( )
Returns
string

Definition at line 78 of file class.ilAssOrderingFormValuesObjectsConverter.php.

References $context.

Referenced by collectValuesFromElements(), and constructElementsFromValues().

+ Here is the caller graph for this function:

◆ getFileSubmitData()

ilAssOrderingFormValuesObjectsConverter::getFileSubmitData ( )
protected

Definition at line 376 of file class.ilAssOrderingFormValuesObjectsConverter.php.

376 : array
377 {
378 return $_FILES[$this->getPostVar()] ?? [];
379 }

References getPostVar().

Referenced by getFileSubmitDataRestructuredByIdentifiers().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFileSubmitDataRestructuredByIdentifiers()

ilAssOrderingFormValuesObjectsConverter::getFileSubmitDataRestructuredByIdentifiers ( )
protected
Returns
array

Definition at line 359 of file class.ilAssOrderingFormValuesObjectsConverter.php.

359 : array
360 {
361 $submitted_upload_files = [];
362
363 foreach ($this->getFileSubmitData() as $uploadProperty => $valueElement) {
364 foreach ($valueElement as $element_identifier => $uploadValue) {
365 if (!isset($submitted_upload_files[$element_identifier])) {
366 $submitted_upload_files[$element_identifier] = [];
367 }
368
369 $submitted_upload_files[$element_identifier][$uploadProperty] = $uploadValue;
370 }
371 }
372
373 return $submitted_upload_files;
374 }

References getFileSubmitData().

Referenced by fetchSubmittedUploadFiles().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFileSubmitsHavingActualUpload()

ilAssOrderingFormValuesObjectsConverter::getFileSubmitsHavingActualUpload ( array  $submitted_upload_files)
protected

Definition at line 335 of file class.ilAssOrderingFormValuesObjectsConverter.php.

335 : array
336 {
337 foreach ($submitted_upload_files as $identifier => $upload_properties) {
338 if (!isset($upload_properties['tmp_name'])) {
339 unset($submitted_upload_files[$identifier]);
340 continue;
341 }
342
343 if ($upload_properties['tmp_name'] === '') {
344 unset($submitted_upload_files[$identifier]);
345 continue;
346 }
347
348 if (!is_uploaded_file($upload_properties['tmp_name'])) {
349 unset($submitted_upload_files[$identifier]);
350 }
351 }
352
353 return $submitted_upload_files;
354 }

◆ getImageContentValueFromObject()

ilAssOrderingFormValuesObjectsConverter::getImageContentValueFromObject ( ilAssOrderingElement  $element)
protected

Definition at line 223 of file class.ilAssOrderingFormValuesObjectsConverter.php.

References ilAssOrderingElement\getContent(), getImageFsPath(), getImageUrlPath(), ilAssOrderingElement\getPresentationImageUrl(), getThumbnailPrefix(), ilAssOrderingElement\setImagePathFs(), ilAssOrderingElement\setImagePathWeb(), and ilAssOrderingElement\setImageThumbnailPrefix().

Referenced by collectValuesFromElements().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getImageFsPath()

ilAssOrderingFormValuesObjectsConverter::getImageFsPath ( )
Returns
string

Definition at line 133 of file class.ilAssOrderingFormValuesObjectsConverter.php.

References $imageFsPath.

Referenced by getImageContentValueFromObject().

+ Here is the caller graph for this function:

◆ getImageRemovalCommand()

ilAssOrderingFormValuesObjectsConverter::getImageRemovalCommand ( )

Definition at line 107 of file class.ilAssOrderingFormValuesObjectsConverter.php.

References $imageRemovalCommand.

Referenced by wasImageRemovalRequested().

+ Here is the caller graph for this function:

◆ getImageUrlPath()

ilAssOrderingFormValuesObjectsConverter::getImageUrlPath ( )

Definition at line 117 of file class.ilAssOrderingFormValuesObjectsConverter.php.

References $imageUrlPath.

Referenced by getImageContentValueFromObject().

+ Here is the caller graph for this function:

◆ getIndentationsPostVar()

◆ getPostVar()

ilAssOrderingFormValuesObjectsConverter::getPostVar ( )
Returns
string

Definition at line 94 of file class.ilAssOrderingFormValuesObjectsConverter.php.

94 : ?string
95 {
96 return $this->postVar;
97 }

References $postVar.

Referenced by getFileSubmitData(), getIndentationsPostVar(), and wasImageRemovalRequested().

+ Here is the caller graph for this function:

◆ getStructValueFromObject()

ilAssOrderingFormValuesObjectsConverter::getStructValueFromObject ( ilAssOrderingElement  $element)
protected

Definition at line 235 of file class.ilAssOrderingFormValuesObjectsConverter.php.

235 : array
236 {
237 return [
238 'answer_id' => $element->getId(),
239 'random_id' => $element->getRandomIdentifier(),
240 'content' => (string) $element->getContent(),
241 'ordering_position' => $element->getPosition(),
242 'ordering_indentation' => $element->getIndentation()
243 ];
244 }

References ilAssOrderingElement\getContent(), ilAssOrderingElement\getId(), ilAssOrderingElement\getIndentation(), ilAssOrderingElement\getPosition(), and ilAssOrderingElement\getRandomIdentifier().

Referenced by collectValuesFromElements().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getTextContentValueFromObject()

ilAssOrderingFormValuesObjectsConverter::getTextContentValueFromObject ( ilAssOrderingElement  $element)
protected

Definition at line 218 of file class.ilAssOrderingFormValuesObjectsConverter.php.

218 : ?string
219 {
220 return $element->getContent();
221 }

References ilAssOrderingElement\getContent().

Referenced by collectValuesFromElements().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getThumbnailPrefix()

ilAssOrderingFormValuesObjectsConverter::getThumbnailPrefix ( )
Returns
string

Definition at line 149 of file class.ilAssOrderingFormValuesObjectsConverter.php.

References $thumbnailPrefix.

Referenced by getImageContentValueFromObject().

+ Here is the caller graph for this function:

◆ manipulateFormInputValues()

ilAssOrderingFormValuesObjectsConverter::manipulateFormInputValues ( array  $input_values)

Implements ilFormValuesManipulator.

Definition at line 180 of file class.ilAssOrderingFormValuesObjectsConverter.php.

180 : array
181 {
182 if ($this->needsConvertToValues($input_values)) {
183 $input_values = $this->collectValuesFromElements($input_values);
184 }
185
186 return $input_values;
187 }

References collectValuesFromElements(), and needsConvertToValues().

+ Here is the call graph for this function:

◆ manipulateFormSubmitValues()

ilAssOrderingFormValuesObjectsConverter::manipulateFormSubmitValues ( array  $submit_values)

Implements ilFormValuesManipulator.

Definition at line 255 of file class.ilAssOrderingFormValuesObjectsConverter.php.

255 : array
256 {
257 if ($this->needsConvertToElements($submit_values)) {
258 $submit_values = $this->constructElementsFromValues($submit_values);
259 }
260
261 return $submit_values;
262 }

References constructElementsFromValues(), and needsConvertToElements().

+ Here is the call graph for this function:

◆ needsConvertToElements()

ilAssOrderingFormValuesObjectsConverter::needsConvertToElements (   $values_or_elements)
protected

Definition at line 246 of file class.ilAssOrderingFormValuesObjectsConverter.php.

246 : bool
247 {
248 if (!count($values_or_elements)) {
249 return false;
250 }
251
252 return !(current($values_or_elements) instanceof ilAssOrderingElement);
253 }

Referenced by manipulateFormSubmitValues().

+ Here is the caller graph for this function:

◆ needsConvertToValues()

ilAssOrderingFormValuesObjectsConverter::needsConvertToValues (   $elements_or_values)
protected

Definition at line 171 of file class.ilAssOrderingFormValuesObjectsConverter.php.

171 : bool
172 {
173 if (!count($elements_or_values)) {
174 return false;
175 }
176
177 return (current($elements_or_values) instanceof ilAssOrderingElement);
178 }

Referenced by manipulateFormInputValues().

+ Here is the caller graph for this function:

◆ setContext()

ilAssOrderingFormValuesObjectsConverter::setContext (   $context)
Parameters
$context

Definition at line 86 of file class.ilAssOrderingFormValuesObjectsConverter.php.

86 : void
87 {
88 $this->context = $context;
89 }

References $context.

◆ setImageFsPath()

ilAssOrderingFormValuesObjectsConverter::setImageFsPath (   $imageFsPath)
Parameters
string$imageFsPath

Definition at line 141 of file class.ilAssOrderingFormValuesObjectsConverter.php.

141 : void
142 {
143 $this->imageFsPath = $imageFsPath;
144 }

References $imageFsPath.

◆ setImageRemovalCommand()

ilAssOrderingFormValuesObjectsConverter::setImageRemovalCommand (   $imageRemovalCommand)

Definition at line 112 of file class.ilAssOrderingFormValuesObjectsConverter.php.

112 : void
113 {
114 $this->imageRemovalCommand = $imageRemovalCommand;
115 }

References $imageRemovalCommand.

◆ setImageUrlPath()

ilAssOrderingFormValuesObjectsConverter::setImageUrlPath (   $imageUrlPath)
Parameters
string$imageUrlPath

Definition at line 125 of file class.ilAssOrderingFormValuesObjectsConverter.php.

125 : void
126 {
127 $this->imageUrlPath = $imageUrlPath;
128 }

References $imageUrlPath.

◆ setPostVar()

ilAssOrderingFormValuesObjectsConverter::setPostVar (   $postVar)
Parameters
$postVar

Definition at line 102 of file class.ilAssOrderingFormValuesObjectsConverter.php.

102 : void
103 {
104 $this->postVar = $postVar;
105 }

References $postVar.

◆ setThumbnailPrefix()

ilAssOrderingFormValuesObjectsConverter::setThumbnailPrefix (   $thumbnailPrefix)
Parameters
string$thumbnailPrefix

Definition at line 157 of file class.ilAssOrderingFormValuesObjectsConverter.php.

157 : void
158 {
159 $this->thumbnailPrefix = $thumbnailPrefix;
160 }

References $thumbnailPrefix.

◆ wasImageRemovalRequested()

ilAssOrderingFormValuesObjectsConverter::wasImageRemovalRequested (   $identifier)
protected

TODO: Instead of accessing post, the complete ilFormValuesManipulator should be aware of a server request or the corresponding processed input values.

Parameters
$identifier
Returns
bool

Definition at line 386 of file class.ilAssOrderingFormValuesObjectsConverter.php.

386 : bool
387 {
388 if (!$this->getImageRemovalCommand()) {
389 return false;
390 }
391
392 $cmd = $this->request_data_collector->strArray('cmd', 3);
393
394 if (!isset($cmd[$this->getImageRemovalCommand()])) {
395 return false;
396 }
397
398 $field_arr = $cmd[$this->getImageRemovalCommand()];
399
400 if (!isset($field_arr[$this->getPostVar()])) {
401 return false;
402 }
403
404 return (string) str_replace(
406 '',
407 (string) key($field_arr[$this->getPostVar()])
408 ) === (string) $identifier;
409 }

References getImageRemovalCommand(), getPostVar(), and ilIdentifiedMultiValuesJsPositionIndexRemover\IDENTIFIER_INDICATOR_PREFIX.

Referenced by constructElementsFromValues().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $context

ilAssOrderingFormValuesObjectsConverter::$context = null
protected

Definition at line 40 of file class.ilAssOrderingFormValuesObjectsConverter.php.

Referenced by getContext(), and setContext().

◆ $imageFsPath

ilAssOrderingFormValuesObjectsConverter::$imageFsPath
protected

◆ $imageRemovalCommand

ilAssOrderingFormValuesObjectsConverter::$imageRemovalCommand = null
protected

◆ $imageUrlPath

ilAssOrderingFormValuesObjectsConverter::$imageUrlPath
protected

◆ $postVar

ilAssOrderingFormValuesObjectsConverter::$postVar = null
protected

◆ $request_data_collector

readonly RequestDataCollector ilAssOrderingFormValuesObjectsConverter::$request_data_collector
private

◆ $thumbnailPrefix

ilAssOrderingFormValuesObjectsConverter::$thumbnailPrefix
protected

◆ CONTEXT_MAINTAIN_ELEMENT_IMAGE

const ilAssOrderingFormValuesObjectsConverter::CONTEXT_MAINTAIN_ELEMENT_IMAGE = 'maintainItemImage'

◆ CONTEXT_MAINTAIN_ELEMENT_TEXT

const ilAssOrderingFormValuesObjectsConverter::CONTEXT_MAINTAIN_ELEMENT_TEXT = 'maintainItemText'

◆ CONTEXT_MAINTAIN_HIERARCHY

const ilAssOrderingFormValuesObjectsConverter::CONTEXT_MAINTAIN_HIERARCHY = 'maintainHierarchy'

◆ INDENTATIONS_POSTVAR_SUFFIX

const ilAssOrderingFormValuesObjectsConverter::INDENTATIONS_POSTVAR_SUFFIX = '_ordering'

◆ INDENTATIONS_POSTVAR_SUFFIX_JS

const ilAssOrderingFormValuesObjectsConverter::INDENTATIONS_POSTVAR_SUFFIX_JS = '__default'

The documentation for this class was generated from the following file: