ILIAS  trunk Revision v11.0_alpha-1715-g7fc467680fb
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
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)
 

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.

References getContext(), getImageContentValueFromObject(), getStructValueFromObject(), and getTextContentValueFromObject().

Referenced by manipulateFormInputValues().

189  : array
190  {
191  $values = [];
192 
193  foreach ($elements as $identifier => $ordering_element) {
194  switch ($this->getContext()) {
195  case self::CONTEXT_MAINTAIN_ELEMENT_TEXT:
196 
197  $values[$identifier] = $this->getTextContentValueFromObject($ordering_element);
198  break;
199 
200  case self::CONTEXT_MAINTAIN_ELEMENT_IMAGE:
201 
202  $values[$identifier] = $this->getImageContentValueFromObject($ordering_element);
203  break;
204 
205  case self::CONTEXT_MAINTAIN_HIERARCHY:
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  }
+ 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.

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

Referenced by manipulateFormSubmitValues().

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...
+ 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().

324  {
325  return $this->fetchSubmittedUploadFiles()[$identifier] ?? [];
326  }
+ 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.

References null.

Referenced by fetchSubmittedImageFilename(), and fetchSubmittedUploadFilename().

319  {
320  return $file_upload[$property] ?? null;
321  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ Here is the caller graph for this function:

◆ fetchSubmittedImageFilename()

ilAssOrderingFormValuesObjectsConverter::fetchSubmittedImageFilename (   $identifier)
protected

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

References fetchElementFileUpload(), and fetchSubmittedFileUploadProperty().

Referenced by constructElementsFromValues().

307  {
308  $fileUpload = $this->fetchElementFileUpload($identifier);
309  return $this->fetchSubmittedFileUploadProperty($fileUpload, 'name');
310  }
+ 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.

References fetchElementFileUpload(), and fetchSubmittedFileUploadProperty().

Referenced by constructElementsFromValues().

313  {
314  $fileUpload = $this->fetchElementFileUpload($identifier);
315  return $this->fetchSubmittedFileUploadProperty($fileUpload, 'tmp_name');
316  }
+ 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.

References getFileSubmitDataRestructuredByIdentifiers().

Referenced by fetchElementFileUpload().

328  : array
329  {
330  $submitted_upload_files = $this->getFileSubmitDataRestructuredByIdentifiers();
331  //$submittedUploadFiles = $this->getFileSubmitsHavingActualUpload($submittedUploadFiles);
332  return $submitted_upload_files;
333  }
+ 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.

References getPostVar().

Referenced by getFileSubmitDataRestructuredByIdentifiers().

376  : array
377  {
378  return $_FILES[$this->getPostVar()] ?? [];
379  }
+ 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.

References getFileSubmitData().

Referenced by fetchSubmittedUploadFiles().

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  }
+ 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()

ilAssOrderingFormValuesObjectsConverter::getIndentationsPostVar ( )

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

References $postVar, and getPostVar().

162  : string
163  {
164  $postVar = $this->getPostVar();
165  $postVar .= self::INDENTATIONS_POSTVAR_SUFFIX;
166  $postVar .= self::INDENTATIONS_POSTVAR_SUFFIX_JS;
167 
168  return $postVar;
169  }
+ Here is the call graph for this function:

◆ getPostVar()

ilAssOrderingFormValuesObjectsConverter::getPostVar ( )
Returns
string

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

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.

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

Referenced by collectValuesFromElements().

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  }
+ 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.

References ilAssOrderingElement\getContent().

Referenced by collectValuesFromElements().

218  : ?string
219  {
220  return $element->getContent();
221  }
+ 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.

References collectValuesFromElements(), and needsConvertToValues().

180  : array
181  {
182  if ($this->needsConvertToValues($input_values)) {
183  $input_values = $this->collectValuesFromElements($input_values);
184  }
185 
186  return $input_values;
187  }
+ 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.

References constructElementsFromValues(), and needsConvertToElements().

255  : array
256  {
257  if ($this->needsConvertToElements($submit_values)) {
258  $submit_values = $this->constructElementsFromValues($submit_values);
259  }
260 
261  return $submit_values;
262  }
+ Here is the call graph for this function:

◆ needsConvertToElements()

ilAssOrderingFormValuesObjectsConverter::needsConvertToElements (   $values_or_elements)
protected

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

Referenced by manipulateFormSubmitValues().

246  : bool
247  {
248  if (!count($values_or_elements)) {
249  return false;
250  }
251 
252  return !(current($values_or_elements) instanceof ilAssOrderingElement);
253  }
+ Here is the caller graph for this function:

◆ needsConvertToValues()

ilAssOrderingFormValuesObjectsConverter::needsConvertToValues (   $elements_or_values)
protected

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

Referenced by manipulateFormInputValues().

171  : bool
172  {
173  if (!count($elements_or_values)) {
174  return false;
175  }
176 
177  return (current($elements_or_values) instanceof ilAssOrderingElement);
178  }
+ Here is the caller graph for this function:

◆ setContext()

ilAssOrderingFormValuesObjectsConverter::setContext (   $context)
Parameters
$context

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

References $context.

◆ setImageFsPath()

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

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

References $imageFsPath.

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

◆ setImageRemovalCommand()

ilAssOrderingFormValuesObjectsConverter::setImageRemovalCommand (   $imageRemovalCommand)

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

References $imageRemovalCommand.

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

◆ setImageUrlPath()

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

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

References $imageUrlPath.

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

◆ setPostVar()

ilAssOrderingFormValuesObjectsConverter::setPostVar (   $postVar)
Parameters
$postVar

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

References $postVar.

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

◆ setThumbnailPrefix()

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

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

References $thumbnailPrefix.

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

◆ 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.

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

Referenced by constructElementsFromValues().

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  }
+ 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: