‪TYPO3CMS  10.4
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 
27 {
33  protected static ‪$storageTableName = 'sys_file_collection';
34 
41  protected static ‪$type;
42 
49  protected static ‪$itemsCriteriaField;
50 
57  protected ‪$itemsCriteria;
58 
64  protected ‪$itemTableName = 'sys_file';
65 
71  public function ‪setDescription(‪$description)
72  {
73  $this->description = ‪$description;
74  }
75 
81  public function ‪key()
82  {
84  $currentRecord = $this->storage->current();
85  return $currentRecord->getIdentifier();
86  }
87 
94  protected function ‪getItemUidList($includeTableName = false)
95  {
96  $list = [];
98  foreach ($this->storage as $entry) {
99  $list[] = $this->‪getItemTableName() . '_' . $entry->getUid();
100  }
101  return implode(',', $list);
102  }
103 
110  protected function ‪getPersistableDataArray()
111  {
112  return [
113  'title' => $this->‪getTitle(),
114  'type' => static::$type,
115  'description' => $this->‪getDescription(),
116  static::$itemsCriteriaField => $this->‪getItemsCriteria()
117  ];
118  }
119 
126  public function ‪toArray()
127  {
128  $itemArray = [];
130  foreach ($this->storage as $item) {
131  $itemArray[] = $item->toArray();
132  }
133  return [
134  'uid' => $this->‪getIdentifier(),
135  'title' => $this->‪getTitle(),
136  'description' => $this->‪getDescription(),
137  'items' => $itemArray
138  ];
139  }
140 
146  public function ‪getItems()
147  {
148  $itemArray = [];
150  foreach ($this->storage as $item) {
151  $itemArray[] = $item;
152  }
153  return $itemArray;
154  }
155 
163  public function ‪fromArray(array $array)
164  {
165  $this->uid = $array['uid'];
166  $this->title = $array['title'];
167  $this->description = $array['description'];
168  $this->itemsCriteria = $array[static::$itemsCriteriaField];
169  }
170 
176  public function ‪getItemsCriteria()
177  {
179  }
180 
186  public function ‪setItemsCriteria(‪$itemsCriteria)
187  {
188  $this->itemsCriteria = ‪$itemsCriteria;
189  }
190 
196  public function ‪add(‪FileInterface $data)
197  {
198  $this->storage->push($data);
199  }
200 
206  public function ‪addAll(‪CollectionInterface $other)
207  {
209  foreach ($other as $value) {
210  $this->‪add($value);
211  }
212  }
213 
219  public function remove(‪File $file)
220  {
221  $offset = 0;
223  foreach ($this->storage as $value) {
224  if ($value === $file) {
225  break;
226  }
227  $offset++;
228  }
229  $this->storage->offsetUnset($offset);
230  }
231 
235  public function ‪removeAll()
236  {
237  $this->storage = new \SplDoublyLinkedList();
238  }
239 }
‪TYPO3\CMS\Core\Resource\Collection
Definition: AbstractFileCollection.php:16
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection
Definition: AbstractFileCollection.php:27
‪TYPO3\CMS\Core\Resource\FileInterface
Definition: FileInterface.php:22
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\addAll
‪addAll(CollectionInterface $other)
Definition: AbstractFileCollection.php:201
‪TYPO3\CMS\Core\Collection\AbstractRecordCollection\getTitle
‪string getTitle()
Definition: AbstractRecordCollection.php:192
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\key
‪string key()
Definition: AbstractFileCollection.php:76
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\$type
‪static string $type
Definition: AbstractFileCollection.php:39
‪TYPO3\CMS\Core\Collection\AbstractRecordCollection
Definition: AbstractRecordCollection.php:36
‪TYPO3\CMS\Core\Collection\CollectionInterface
Definition: CollectionInterface.php:27
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\$itemsCriteria
‪mixed $itemsCriteria
Definition: AbstractFileCollection.php:53
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\$itemsCriteriaField
‪static string $itemsCriteriaField
Definition: AbstractFileCollection.php:46
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\getItemUidList
‪string getItemUidList($includeTableName=false)
Definition: AbstractFileCollection.php:89
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\add
‪add(FileInterface $data)
Definition: AbstractFileCollection.php:191
‪TYPO3\CMS\Core\Collection\AbstractRecordCollection\getItemTableName
‪string getItemTableName()
Definition: AbstractRecordCollection.php:242
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\fromArray
‪fromArray(array $array)
Definition: AbstractFileCollection.php:158
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\setItemsCriteria
‪setItemsCriteria($itemsCriteria)
Definition: AbstractFileCollection.php:181
‪TYPO3\CMS\Core\Resource\File
Definition: File.php:24
‪TYPO3\CMS\Core\Collection\AbstractRecordCollection\$description
‪string $description
Definition: AbstractRecordCollection.php:65
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\toArray
‪array toArray()
Definition: AbstractFileCollection.php:121
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\removeAll
‪removeAll()
Definition: AbstractFileCollection.php:230
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\getPersistableDataArray
‪array getPersistableDataArray()
Definition: AbstractFileCollection.php:105
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\getItems
‪array getItems()
Definition: AbstractFileCollection.php:141
‪TYPO3\CMS\Core\Collection\AbstractRecordCollection\getIdentifier
‪int getIdentifier()
Definition: AbstractRecordCollection.php:292
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\setDescription
‪setDescription($description)
Definition: AbstractFileCollection.php:66
‪TYPO3\CMS\Core\Collection\AbstractRecordCollection\getDescription
‪string getDescription()
Definition: AbstractRecordCollection.php:212
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\$storageTableName
‪static string $storageTableName
Definition: AbstractFileCollection.php:32
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\$itemTableName
‪string $itemTableName
Definition: AbstractFileCollection.php:59
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\getItemsCriteria
‪mixed getItemsCriteria()
Definition: AbstractFileCollection.php:171