‪TYPO3CMS  9.5
AbstractFileCollection.php
Go to the documentation of this file.
1 <?php
3 
4 /*
5  * This file is part of the TYPO3 CMS project.
6  *
7  * It is free software; you can redistribute it and/or modify it under
8  * the terms of the GNU General Public License, either version 2
9  * of the License, or any later version.
10  *
11  * For the full copyright and license information, please read the
12  * LICENSE.txt file that was distributed with this source code.
13  *
14  * The TYPO3 project - inspiring people to share!
15  */
19 
24 {
30  protected static ‪$storageTableName = 'sys_file_collection';
31 
38  protected static ‪$type;
39 
46  protected static ‪$itemsCriteriaField;
47 
54  protected ‪$itemsCriteria;
55 
61  protected ‪$itemTableName = 'sys_file';
62 
68  public function ‪setDescription(‪$description)
69  {
70  $this->description = ‪$description;
71  }
72 
78  public function ‪key()
79  {
81  $currentRecord = $this->storage->current();
82  return $currentRecord->getIdentifier();
83  }
84 
91  protected function ‪getItemUidList($includeTableName = false)
92  {
93  $list = [];
95  foreach ($this->storage as $entry) {
96  $list[] = $this->‪getItemTableName() . '_' . $entry->getUid();
97  }
98  return implode(',', $list);
99  }
100 
107  protected function ‪getPersistableDataArray()
108  {
109  return [
110  'title' => $this->‪getTitle(),
111  'type' => static::$type,
112  'description' => $this->‪getDescription(),
113  static::$itemsCriteriaField => $this->‪getItemsCriteria()
114  ];
115  }
116 
123  public function ‪toArray()
124  {
125  $itemArray = [];
127  foreach ($this->storage as $item) {
128  $itemArray[] = $item->toArray();
129  }
130  return [
131  'uid' => $this->‪getIdentifier(),
132  'title' => $this->‪getTitle(),
133  'description' => $this->‪getDescription(),
134  'items' => $itemArray
135  ];
136  }
137 
143  public function ‪getItems()
144  {
145  $itemArray = [];
147  foreach ($this->storage as $item) {
148  $itemArray[] = $item;
149  }
150  return $itemArray;
151  }
152 
160  public function ‪fromArray(array $array)
161  {
162  $this->uid = $array['uid'];
163  $this->title = $array['title'];
164  $this->description = $array['description'];
165  $this->itemsCriteria = $array[static::$itemsCriteriaField];
166  }
167 
173  public function ‪getItemsCriteria()
174  {
176  }
177 
183  public function ‪setItemsCriteria(‪$itemsCriteria)
184  {
185  $this->itemsCriteria = ‪$itemsCriteria;
186  }
187 
193  public function ‪add(‪FileInterface $data)
194  {
195  $this->storage->push($data);
196  }
197 
203  public function ‪addAll(‪CollectionInterface $other)
204  {
206  foreach ($other as $value) {
207  $this->‪add($value);
208  }
209  }
210 
216  public function remove(‪File $file)
217  {
218  $offset = 0;
220  foreach ($this->storage as $value) {
221  if ($value === $file) {
222  break;
223  }
224  $offset++;
225  }
226  $this->storage->offsetUnset($offset);
227  }
228 
232  public function ‪removeAll()
233  {
234  $this->storage = new \SplDoublyLinkedList();
235  }
236 }
‪TYPO3\CMS\Core\Resource\Collection
Definition: AbstractFileCollection.php:2
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection
Definition: AbstractFileCollection.php:24
‪TYPO3\CMS\Core\Resource\FileInterface
Definition: FileInterface.php:21
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\addAll
‪addAll(CollectionInterface $other)
Definition: AbstractFileCollection.php:198
‪TYPO3\CMS\Core\Collection\AbstractRecordCollection\getTitle
‪string getTitle()
Definition: AbstractRecordCollection.php:189
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\key
‪string key()
Definition: AbstractFileCollection.php:73
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\$type
‪static string $type
Definition: AbstractFileCollection.php:36
‪TYPO3\CMS\Core\Collection\AbstractRecordCollection
Definition: AbstractRecordCollection.php:33
‪TYPO3\CMS\Core\Collection\CollectionInterface
Definition: CollectionInterface.php:26
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\$itemsCriteria
‪mixed $itemsCriteria
Definition: AbstractFileCollection.php:50
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\$itemsCriteriaField
‪static string $itemsCriteriaField
Definition: AbstractFileCollection.php:43
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\getItemUidList
‪string getItemUidList($includeTableName=false)
Definition: AbstractFileCollection.php:86
‪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:239
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\fromArray
‪fromArray(array $array)
Definition: AbstractFileCollection.php:155
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\setItemsCriteria
‪setItemsCriteria($itemsCriteria)
Definition: AbstractFileCollection.php:178
‪TYPO3\CMS\Core\Resource\File
Definition: File.php:23
‪TYPO3\CMS\Core\Collection\AbstractRecordCollection\$description
‪string $description
Definition: AbstractRecordCollection.php:62
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\toArray
‪array toArray()
Definition: AbstractFileCollection.php:118
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\removeAll
‪removeAll()
Definition: AbstractFileCollection.php:227
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\getPersistableDataArray
‪array getPersistableDataArray()
Definition: AbstractFileCollection.php:102
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\getItems
‪array getItems()
Definition: AbstractFileCollection.php:138
‪TYPO3\CMS\Core\Collection\AbstractRecordCollection\getIdentifier
‪int getIdentifier()
Definition: AbstractRecordCollection.php:289
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\setDescription
‪setDescription($description)
Definition: AbstractFileCollection.php:63
‪TYPO3\CMS\Core\Collection\AbstractRecordCollection\getDescription
‪string getDescription()
Definition: AbstractRecordCollection.php:209
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\$storageTableName
‪static string $storageTableName
Definition: AbstractFileCollection.php:29
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\$itemTableName
‪string $itemTableName
Definition: AbstractFileCollection.php:56
‪TYPO3\CMS\Core\Resource\Collection\AbstractFileCollection\getItemsCriteria
‪mixed getItemsCriteria()
Definition: AbstractFileCollection.php:168