‪TYPO3CMS  ‪main
AbstractFileCollection.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4  * This file is part of the TYPO3 CMS project.
5  *
6  * It is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU General Public License, either version 2
8  * of the License, or any later version.
9  *
10  * For the full copyright and license information, please read the
11  * LICENSE.txt file that was distributed with this source code.
12  *
13  * The TYPO3 project - inspiring people to share!
14  */
15 
17 
22 
28 {
34  protected static ‪$storageTableName = 'sys_file_collection';
35 
42  protected static ‪$type;
43 
50  protected static ‪$itemsCriteriaField;
51 
58  protected ‪$itemsCriteria;
59 
65  protected ‪$itemTableName = 'sys_file';
66 
72  public function ‪setDescription(‪$description)
73  {
75  }
76 
82  public function ‪key(): mixed
83  {
85  $currentRecord = $this->storage->current();
86  return $currentRecord->getIdentifier();
87  }
88 
95  protected function ‪getItemUidList($includeTableName = false)
96  {
97  $list = [];
99  foreach ($this->storage as $entry) {
100  $list[] = $this->‪getItemTableName() . '_' . $entry->getUid();
101  }
102  return implode(',', $list);
103  }
104 
111  protected function ‪getPersistableDataArray()
112  {
113  return [
114  'title' => $this->‪getTitle(),
115  'type' => static::$type,
116  'description' => $this->‪getDescription(),
117  static::$itemsCriteriaField => $this->‪getItemsCriteria(),
118  ];
119  }
120 
127  public function ‪toArray()
128  {
129  $itemArray = [];
131  foreach ($this->storage as $item) {
132  $itemArray[] = $item->toArray();
133  }
134  return [
135  'uid' => $this->‪getIdentifier(),
136  'title' => $this->‪getTitle(),
137  'description' => $this->‪getDescription(),
138  'items' => $itemArray,
139  ];
140  }
141 
147  public function ‪getItems()
148  {
149  $itemArray = [];
151  foreach ($this->storage as $item) {
152  $itemArray[] = $item;
153  }
154  return $itemArray;
155  }
156 
162  public function ‪fromArray(array $array)
163  {
164  $this->uid = $array['uid'];
165  $this->title = $array['title'];
166  $this->‪description = $array['description'];
167  $this->itemsCriteria = $array[static::$itemsCriteriaField];
168  }
169 
175  public function ‪getItemsCriteria()
176  {
178  }
179 
185  public function ‪setItemsCriteria(‪$itemsCriteria)
186  {
187  $this->itemsCriteria = ‪$itemsCriteria;
188  }
189 
193  public function ‪add(‪FileInterface $data)
194  {
195  $this->storage->push($data);
196  }
197 
201  public function ‪addAll(‪CollectionInterface $other)
202  {
204  foreach ($other as $value) {
205  $this->‪add($value);
206  }
207  }
208 
212  public function remove(‪File $file)
213  {
214  $offset = 0;
216  foreach ($this->storage as $value) {
217  if ($value === $file) {
218  break;
219  }
220  $offset++;
221  }
222  $this->storage->offsetUnset($offset);
223  }
224 
228  public function ‪removeAll()
229  {
230  $this->storage = new \SplDoublyLinkedList();
231  }
232 }
‪TYPO3\CMS\Core\Resource\Collection
Definition: AbstractFileCollection.php:16
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection
Definition: AbstractFileCollection.php:28
‪TYPO3\CMS\Core\Resource\FileInterface
Definition: FileInterface.php:26
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\addAll
‪addAll(CollectionInterface $other)
Definition: AbstractFileCollection.php:196
‪TYPO3\CMS\Core\Collection\AbstractRecordCollection\getTitle
‪string getTitle()
Definition: AbstractRecordCollection.php:171
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\key
‪string key()
Definition: AbstractFileCollection.php:77
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\$type
‪static string $type
Definition: AbstractFileCollection.php:40
‪TYPO3\CMS\Core\Collection\AbstractRecordCollection
Definition: AbstractRecordCollection.php:40
‪TYPO3\CMS\Core\Collection\CollectionInterface
Definition: CollectionInterface.php:28
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\$itemsCriteria
‪mixed $itemsCriteria
Definition: AbstractFileCollection.php:54
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\$itemsCriteriaField
‪static string $itemsCriteriaField
Definition: AbstractFileCollection.php:47
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\getItemUidList
‪string getItemUidList($includeTableName=false)
Definition: AbstractFileCollection.php:90
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\add
‪add(FileInterface $data)
Definition: AbstractFileCollection.php:188
‪TYPO3\CMS\Core\Collection\AbstractRecordCollection\getItemTableName
‪string getItemTableName()
Definition: AbstractRecordCollection.php:221
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\fromArray
‪fromArray(array $array)
Definition: AbstractFileCollection.php:157
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\setItemsCriteria
‪setItemsCriteria($itemsCriteria)
Definition: AbstractFileCollection.php:180
‪TYPO3\CMS\Core\Resource\File
Definition: File.php:26
‪TYPO3\CMS\Core\Collection\AbstractRecordCollection\$description
‪string $description
Definition: AbstractRecordCollection.php:69
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\toArray
‪array toArray()
Definition: AbstractFileCollection.php:122
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\removeAll
‪removeAll()
Definition: AbstractFileCollection.php:223
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\getPersistableDataArray
‪array getPersistableDataArray()
Definition: AbstractFileCollection.php:106
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\getItems
‪array getItems()
Definition: AbstractFileCollection.php:142
‪TYPO3\CMS\Core\Collection\AbstractRecordCollection\getIdentifier
‪int getIdentifier()
Definition: AbstractRecordCollection.php:271
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\setDescription
‪setDescription($description)
Definition: AbstractFileCollection.php:67
‪TYPO3\CMS\Redirects\Message\description
‪identifier description
Definition: RedirectWasHitMessage.php:32
‪TYPO3\CMS\Core\Collection\AbstractRecordCollection\getDescription
‪string getDescription()
Definition: AbstractRecordCollection.php:191
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\$storageTableName
‪static string $storageTableName
Definition: AbstractFileCollection.php:33
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\$itemTableName
‪string $itemTableName
Definition: AbstractFileCollection.php:60
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\getItemsCriteria
‪mixed getItemsCriteria()
Definition: AbstractFileCollection.php:170